Golang Redis Sentinel 客户端

问题描述 投票:0回答:2

我正在向一个用 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 客户端吗?

redis redis-cluster
2个回答
1
投票

如果您有多个哨兵,请使用 NewFailoverClient

rdb := redis.NewFailoverClient(&redis.FailoverOptions{
    MasterName: "mymaster",
    SentinelAddrs: []string{
        "sentinel_1:26379",
        "sentinel_2:26379",
        "sentinel_3:26379",
    },
})

0
投票

查看 Redis Sentinel Gateway — 它有助于管理 Redis 故障转移,而无需在应用程序代码中实现 Sentinel 支持。非常适合需要高可用性的遗留应用程序!

© www.soinside.com 2019 - 2024. All rights reserved.