redis - Golang Redis Sentinel 客户端
问题描述
我正在为一个用 Go 编写的开源项目添加 Redis 支持。目标是支持所有 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 ),“客户端应迭代 Sentinel 地址列表。”
如果SentinelClient只有一个哨兵地址,它如何遍历其余哨兵实例?
我错过了什么吗?
在同一主题上,有人可以推荐另一个可能适合这种情况的 Go Redis 客户端吗?
解决方案
如果您有多个哨兵,请使用NewFailoverClient 。
rdb := redis.NewFailoverClient(&redis.FailoverOptions{
MasterName: "mymaster",
SentinelAddrs: []string{
"sentinel_1:26379",
"sentinel_2:26379",
"sentinel_3:26379",
},
})
推荐阅读
- jenkins - 具有 SSH 代理的 Jenkins 中的权限从节点
- sql - 在 1 列 SQL Server 上选择具有重复值的行
- android - Facebook Android SDK:通过应用范围的 userId 获取用户
- php - 如何在 Laravel 中为 Pivot 模型用户路由模型绑定
- typescript - 将 Next.js 与 typescript 一起使用,但不能在 WithRouterProps 中应用泛型
- javascript - 在 reactJs 中使用 id 滚动到特定 div 而不使用任何其他库
- android - Java.Lang.NoSuchMethodError:没有非静态方法“Landroid/content/Context;.getColorStateList(I)Landroid/content/res/ColorStateList;”
- angular - Angular 6 - 使用await for http客户端,如果失败我如何获得状态码
- svg - SVG动画查询
- solr - 如何使用 TZ 参数在 solr 中获取文字日期范围查询