问题描述
我正在将Redis支持添加到用Go编写的开源项目中。目标是支持所有Redis拓扑:服务器,群集,哨兵。
我浏览了 redis.io/clients 中列出的Go客户端,看来 github.com/go-redis/redis 项目是可行的选择。>
我主要关心的是 NewSentinelClient()方法接受一个哨兵地址。 根据《 Redis客户端指南》( redis.io/topics/sentinel-clients#guidelines-for-redis-clients-with-support-for-redis-sentinel ),“客户端应迭代前哨地址列表。“
SentinelClient 如果只有一个哨兵地址,如何遍历其余哨兵实例?
我想念什么吗?
在同一主题上,有人可以推荐另一个可能适合这种情况的Go Redis客户端吗?
解决方法
如果您有多个哨兵,请使用NewFailoverClient。
rdb := redis.NewFailoverClient(&redis.FailoverOptions{
MasterName: "mymaster",SentinelAddrs: []string{
"sentinel_1:26379","sentinel_2:26379","sentinel_3:26379",},})