Redisのセンチネルモードの仕組み

Redisのセンチネルモードは、複数のRedisのインスタンスを監視・管理するための分散型アーキテクチャーです。主にセンチネル、マスター、スレーブの3つのロールを含んでいます。

  1. 哨兵とは、Redisインスタンスの稼働状況を監視する独立したプロセスです。定期的にハートビートの確認を行い、マスターノードとスレーブノードの可用性を確認し、障害を検出した場合にはそれに対応する措置をとります。
  2. マスターノード:マスターノードはRedisクラスターにおいて書き込み処理を担当するノードのことです。センチネルはマスターノードの可用性を監視し、マスターノードに障害が発生すると、自動的にスレーブノードの中から新しいマスターノードを選択します。
  3. スレーブノード:スレーブノードはRedisクラスタで読み込み処理を担当するノードです。スレーブノードはマスターノードのデータを複製し、定期的にマスターノードとデータを同期します。

哨兵モードの仕組み:

  1. 哨兵が起動すると、その構成ファイルから、主ノードと従ノードを含むすべてのRedisインスタンスの情報が取得されます。
  2. センティネルは定期的にはプライマリノードとセカンダリノードにPINGコマンドを送出して可用性を確認します。特定の時間内に応答がなければ、センティネルはそのノードが利用不可としてマークします。
  3. マスターノードが利用不可の場合、センティネルは設定されたポリシーに基づいてスレーブノードを新しいマスターノードとして選択します。選択基準には、ノードの優先度、前回の同期時のオフセットなどが使用できます。
  4. 哨兵は、他の哨兵とクライアントに新しいマスターノードの情報をブロードキャストして、構成を更新します。
  5. センティネルは、マスターノードが復旧したときに、主ノードとして再起動するか、またはクラスタに参加するスレーブノードとして追加するかどうかを決定します。

主ノードが故障した場合に自動的に従ノードに切り替えることができ、システムの正常な動作を保証するため、哨兵モードは Redis クラスタの可用性と耐障害性を向上させます。

bannerAds