ホームページ >データベース >Redis >Redis の Sentinel メカニズムについて説明し、その使用法を紹介しましょう。

Redis の Sentinel メカニズムについて説明し、その使用法を紹介しましょう。

青灯夜游
青灯夜游転載
2021-12-15 10:14:032026ブラウズ

この記事では、Redis の Sentinel メカニズムを理解し、sentinel を実行する 2 つの方法を紹介します。

Redis の Sentinel メカニズムについて説明し、その使用法を紹介しましょう。

1. 概要

Redis-Sentinel は、公式に推奨される高可用性 (HA) ソリューションです。 Redis ソリューションでは、Redis をマスター/スレーブの高可用性ソリューションとして使用する場合、マスターがダウンした場合、Redis 自体 (多くのクライアントを含む) は自動マスター/スレーブ切り替えを実装せず、Redis-sentinel 自体も独立しています。運用プロセスでは、複数のマスター/スレーブ クラスターを監視し、マスターがダウンしていることを検出した後に自己理解切り替えを実行できます。 [関連する推奨事項: Redis ビデオ チュートリアル ]

その主な機能は次のとおりです:

  • Redis が期待されている規則に従っているかどうかを監視します正常に実行するには;
  • 特定の Redis ノードが異常に実行されていることが判明した場合、別のプロセス (クライアントなど) に通知できます;
  • 自動的に切り替えることができます。マスター ノードが利用できない場合、マスターの複数のスレーブ (複数のスレーブがある場合) の 1 つを新しいマスターとして選択できます。他のスレーブ ノードは、従うマスターのアドレスを変更して新しいアドレスに昇格します。主人の奴隷の。

2. Sentinel はクラスターをサポート

単一の Sentinel プロセスだけを使用して Redis クラスターを監視するのは明らかに信頼性がありません。 Sentinel プロセスがクラッシュすると (Sentinel 自体にも単一障害点があります)、クラスタ システム全体が期待どおりに動作できなくなります。したがって、センチネルをクラスター化する必要がありますが、これにはいくつかの利点があります:

  • 一部のセンチネル プロセスがダウンした場合でも、Redis クラスターのアクティブとバックアップの切り替えは引き続き実行できます。 # Sentinel プロセスが 1 つしかない場合、このプロセスが正しく実行されない場合、またはネットワークがブロックされている場合、redis クラスターのアクティブ/スタンバイの切り替えは不可能になります (単一点の問題);
  • If there are複数のセンチネルの場合、Redis クライアントは任意のセンチネルに接続して Redis クラスターに関する情報を取得できます。
3.

Sentinel バージョンSentinel の現在の最新の安定バージョンは、Sentinel 2 と呼ばれます (以前の Sentinel と区別するため) 1)。 redis2.8インストールパッケージと同時にリリースされました。 Redis2.8 をインストールすると、redis2.8/src/ に Redis-sentinel スタートアップ プログラムが見つかります。

強く推奨: redis2.6 (センチネルのバージョンはセンチネル 1) を使用している場合は、センチネル 1 には多くのバグがあるため、センチネル 2 の redis2.8 バージョンを使用することをお勧めします。非推奨であるため、redis2.8 と Sentinel 2 を使用することを強くお勧めします。

4.

Sentinel の実行

Sentinel を実行するには 2 つの方法があります:

最初のタイプ

redis-sentinel /path/to/sentinel.conf

2 番目のタイプ

redis-server /path/to/sentinel.conf --sentinel

#上記 2 つの方法の両方で、Sentinel 構成ファイル Sentinel.conf を指定する必要があります。指定されていない場合、Sentinel は始まらない。 Sentinel はデフォルトでポート 26379 をリッスンするため、実行する前にポートが他のプロセスによって占有されていないことを確認する必要があります。

5.

Sentinel 設定Redis ソース パッケージには、sentinel 設定ファイルとして Sentinel.conf ファイルが含まれています。各設定項目についての説明が付いています。一般的な構成項目は次のとおりです。

sentinel モニター mymaster 127.0.0.1 6379 2

sentinel ミリ秒後のダウン mymaster 60000 Sentinel フェイルオーバー - timeout mymaster 180000 SentinelParallel-syncs mymaster 1 Sentinel Monitor resque 192.168.1.3 6380 4 Sentinel down-after-msends resque 10000 Sentinel failed over-timeout resque 180000 SentinelParallel-syncs resque 5

上記の設定はitem は mymaster と resque という名前の 2 つのマスターを構成します。構成ファイルはマスター情報を構成するだけで済みます。スレーブは自動的に検出できるため、スレーブ情報を構成する必要はありません (マスター ノードにはスレーブに関するメッセージが含まれます)。設定ファイルは Sentinel の実行中に動的に変更されることに注意してください。たとえば、マスターとスレーブの切り替えが発生すると、設定ファイル内のマスターが別のスレーブに変更されます。このようにして、後で Sentinel が再起動された場合、この構成に基づいて以前に監視していた Redis クラスターのステータスを復元できます。

次に、上記の設定項目を 1 行ずつ説明します。

sentinel Monitor mymaster 127.0.0.1 6379 2

この行は、sentinel によって監視されているマスターの名前が mymaster で、アドレスが 127.0.0.1:6379 であることを表しています。行末の最後の 2 は何を意味しますか?ネットワークの信頼性が低いことはわかっています。センチネルは、ネットワークの輻輳によりマスター Redis が停止していると誤って認識することがあります。センチネルがクラスタ化されている場合、この問題の解決策は非常に簡単になります。複数のセンチネルが相互に通信する必要があるだけです。マスターが本当に死んでいるかどうかを確認するために通信します。この 2 は、クラスター内にマスターが死んだと考えているセンチネルが 2 人いる場合、マスターは本当に利用できないと見なせることを意味します。 (センチネル クラスター内の各センチネルも、ゴシップ プロトコルを通じて相互に通信します)。

プログラミング関連の知識について詳しくは、プログラミング ビデオをご覧ください。 !

以上がRedis の Sentinel メカニズムについて説明し、その使用法を紹介しましょう。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はjuejin.cnで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。