订阅 Sentinel 故障转移,Channel 的名称是什么,如何在订阅的函数中检测到需要刷新 master?
我有一个使用 Redis Sentinel 实现高可用性和故障转移的多节点 Redis 设置。
我需要设置一个 Pub/Sub 到 Redis 来检测 Redis Master 何时失败并且系统选择了一个新的 Master。
_sentinel = redis.sentinel.Sentinel([(app.config["REDIS_HOSTNAME"],app.config["REDIS_SENTINEL_PORT"])])
_master = _sentinel.master_for(app.config["REDIS_SERVICE_NAME"])
def _sentinel_message_handler(message):
#TODO how do I detect that there is a new Redis Master?
_pubsub = _master.pubsub()
_pubsub.subscribe(**{app.config["TODO"]:_sentinel_message_handler})