0

我有一个 redis 哨兵配置,其中一个主服务器、两个从服务器和 3 个哨兵在运行。我注意到,在某些时候,哨兵可能会切换主人,选择其中一个奴隶作为主人。这会导致作为独立客户端连接到主节点的应用程序出现问题(我正在努力更改代码以使用哨兵)。我想知道是否可以通过连接到哨兵客户端来切换主控,即通过' redis-cli'

有人可以告诉我是否有可以用来切换主 IP 的命令吗?

4

2 回答 2

2

客户端应用程序应该使用支持 sentinel 的客户端库,以防 redis 主服务器出现故障并且哨兵选择新的主服务器。如果您的客户端应用程序没有利用它,不确定设置哨兵有多大好处。支持 sentinel 的客户端应用程序将向 sentinel 查询主 IP,并且应该对主连接发生的故障有一定的容忍度。您可以像其他答案状态一样触发手动故障转移:

redis-cli -h {sentinel-ip} -p {26379 or sentinel port} sentinel failover {mastername}

但是您将无法选择故障转移到哪个节点。您可以在 redis.conf 文件中控制配置值 slave_priority ,以便它优先选择一个节点而不是其他节点。从属优先级的描述可以在这里找到:https ://redis.io/topics/sentinel

于 2019-08-14T19:52:27.497 回答
2

您可以通过运行以下命令手动触发故障转移:
redis-cli -a {password} -p {sentinel_port} SENTINEL failover {cluster_name}

于 2016-11-02T18:50:07.053 回答