如何在sentinel配置中切换redis master

时间:2016-03-25 05:54:03

标签: redis redis-sentinel

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

如果有可用于切换主IP的命令,有人可以告诉我吗?

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

在redis主服务器出现故障并且前哨服务器选择新的主服务器的情况下,客户端应用程序应使用支持前哨服务器的客户端库。不知道如果客户端应用程序没有利用哨兵设置的好处。支持哨兵的客户端应用程序将向哨兵查询主ip,并且应在一定程度上容忍主连接发生的故障。您可以像其他答案状态一样触发手动故障转移:

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

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