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