Github url


by go-redis

go-redis /redis

Type-safe Redis client for Golang

9.4K Stars 1.2K Forks Last release: Not found BSD 2-Clause "Simplified" License 1.6K Commits 182 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

Redis client for Golang

Build StatusGoDoc




API docs: Examples:


go-redis requires a Go version with Modules support and uses import versioning. So please make sure to initialize a Go module before installing go-redis:

go mod init go get


import ""


import ( "context" "" ) var ctx = context.Background() func ExampleNewClient() { rdb := redis.NewClient(&redis.Options{ Addr: "localhost:6379", Password: "", // no password set DB: 0, // use default DB }) pong, err := rdb.Ping(ctx).Result() fmt.Println(pong, err) // Output: PONG <nil>

func ExampleClient() {
    rdb := redis.NewClient(&amp;redis.Options{
        Addr: "localhost:6379",
        Password: "", // no password set
        DB: 0, // use default DB
    err := rdb.Set(ctx, "key", "value", 0).Err()
    if err != nil {

    val, err := rdb.Get(ctx, "key").Result()
    if err != nil {
    fmt.Println("key", val)

    val2, err := rdb.Get(ctx, "key2").Result()
    if err == redis.Nil {
        fmt.Println("key2 does not exist")
    } else if err != nil {
    } else {
        fmt.Println("key2", val2)
    // Output: key value
    // key2 does not exist


Please go through examplesto get an idea how to use this package.

Look and feel

Some corner cases:

// SET key value EX 10 NX set, err := rdb.SetNX(ctx, "key", "value", 10\*time.Second).Result() // SORT list LIMIT 0 2 ASC vals, err := rdb.Sort(ctx, "list", &redis.Sort{Offset: 0, Count: 2, Order: "ASC"}).Result() // ZRANGEBYSCORE zset -inf +inf WITHSCORES LIMIT 0 2 vals, err := rdb.ZRangeByScoreWithScores(ctx, "zset", &redis.ZRangeBy{ Min: "-inf", Max: "+inf", Offset: 0, Count: 2, }).Result() // ZINTERSTORE out 2 zset1 zset2 WEIGHTS 2 3 AGGREGATE SUM vals, err := rdb.ZInterStore(ctx, "out", &redis.ZStore{ Keys: []string{"zset1", "zset2"}, Weights: []int64{2, 3} }).Result() // EVAL "return {KEYS[1],ARGV[1]}" 1 "key" "hello" vals, err := rdb.Eval(ctx, "return {KEYS[1],ARGV[1]}", []string{"key"}, "hello").Result() // custom command res, err := rdb.Do(ctx, "set", "key", "value").Result()

See also

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.