Github url

redis

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

Sponsors

Ecosystem

Features

API docs: https://pkg.go.dev/github.com/go-redis/redis/v8?tab=doc. Examples: https://pkg.go.dev/github.com/go-redis/redis/v8?tab=doc#pkg-examples.

Installation

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 github.com/my/repo go get github.com/go-redis/redis/v8

Import:

import "github.com/go-redis/redis/v8"

Quickstart

import ( "context" "github.com/go-redis/redis/v8" ) 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 {
        panic(err)
    }

    val, err := rdb.Get(ctx, "key").Result()
    if err != nil {
        panic(err)
    }
    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 {
        panic(err)
    } else {
        fmt.Println("key2", val2)
    }
    // Output: key value
    // key2 does not exist
}
</nil>

Howto

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.