【发布时间】:2017-09-06 11:26:48
【问题描述】:
我正在尝试获取当前正在监视 redis master 的所有哨兵的列表。
我知道如果我有一个哨兵,我可以使用sentinel sentinels mymaster,但如果我没有哨兵的任何地址,我该如何获得它们?
【问题讨论】:
标签: redis redis-sentinel
我正在尝试获取当前正在监视 redis master 的所有哨兵的列表。
我知道如果我有一个哨兵,我可以使用sentinel sentinels mymaster,但如果我没有哨兵的任何地址,我该如何获得它们?
【问题讨论】:
标签: redis redis-sentinel
没有直接命令可以从主/从节点获取哨兵列表。要获取哨兵列表,您需要订阅任何节点的 pub/sub(主从无关)“__sentinel__:hello”频道并等待消息。通过该 hello 通道的消息来自正在侦听该集群的哨兵。如果你解析这些,你会得到哨兵的地址。消息的格式为:“sentinel_ip,sentinel_port,sentinel_runid,sentinel_current_epoch,master_name,master_ip,master_port,master_config_epoch”(例如 127.0.0.1,26380,07fabf3cbac43bcc955588b1023f95498b58f8f2,16,mymaster,127.0.请参阅:https://redis.io/topics/sentinel#sentinels-and-slaves-auto-discovery 了解哨兵详细信息。如果您需要了解更多关于 sentinel 的工作原理,请查看https://github.com/antirez/redis/blob/unstable/src/server.c
【讨论】:
为了探索更多关于此实例的信息,您可能需要尝试以下两个命令:
SENTINEL slaves mymaster
SENTINEL sentinels mymaster
https://redis.io/topics/sentinel#asking-sentinel-about-the-state-of-a-master
【讨论】: