golang 操作redis
2022-05-10 本文已影响0人
追梦人在路上不断追寻
golang操作redis一般有两种库,一个是go-redis,一个是redigo,在这里我们主要介绍go-redis的使用。

golang:1.5+
安装
- 使用go mod 初始化项目
go mod init github.com/dreamfly2012/demo-redis
- 下载go-redis依赖
go get github.com/go-redis/redis/v8
- 在项目中引入go-redis
import "github.com/go-redis/redis/v8"
使用
- 初始化context
ctx := context.Background()
- 初始化redis客户端
rdb := redis.NewClient(&redis.Options{
Addr: "localhost:6379",
Password: "", // no password set
DB: 0, // use default DB
})
- 操作redis
err := rdb.Set(ctx, "key", "value", 0).Err()
if err != nil {
panic(err)
}
完整代码
package main
import (
"context"
"github.com/go-redis/redis/v8"
)
func main() {
ctx := context.Background()
rdb := redis.NewClient(&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
}