go 操作redis遇到的坑


go操作redis,常用的庫為redisgo和go-redis,在github上都有相關的demo code。

但是,相關的demo都不支持redis集群,開始嘗試都是會報MOVED的錯誤,查資料說用MOVED報錯后的地址再試一次即可,自己搞了半天發現重試也不行。

又繼續查資料,發現go-redis是支持集群的。只要是合理的設置即可。

如下:

var ctx = context.Background()
//關鍵在於如下的配置
rdb := redis.NewClusterClient(&redis.ClusterOptions{
Addrs: []string{"xxx:xx"},
Password: "xx",
})

err := rdb.Set(ctx, "key", "value test", 0).Err()
if err != nil {
fmt.Println(err)
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)
}
測試可用哦。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM