Sentinel フェールオーバーをサブスクライブするには、チャネルの名前は何ですか? サブスクライブされた関数でマスターを更新する必要があることをどのように検出しますか?
高可用性とフェイルオーバーのために Redis Sentinel を使用してマルチノード Redis をセットアップしています。
Redis マスターに障害が発生し、システムが新しいマスターを選択したことを検出するために、Pub/Sub を Redis にセットアップする必要があります。
_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})