获取redis主控哨兵
问题描述:
我想获得所有正在监视redis主控的哨兵列表。获取redis主控哨兵
我知道,如果我有一个哨兵,我可以使用sentinel sentinels mymaster
,但如果我没有任何哨兵的地址,我怎么能得到它们?
答
没有直接的命令从主/从节点获取哨兵列表。要获得哨兵列表,您需要订阅任何节点的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.0.1,6381,16)。请参阅:https://redis.io/topics/sentinel#sentinels-and-slaves-auto-discovery关于哨兵细节。如果你需要更多的了解哨兵是如何工作的,那么看看https://github.com/antirez/redis/blob/unstable/src/server.c
到目前为止,我希望有更优雅的东西,但我想现在要做的就是这样。 谢谢! –