一部のノードがオフラインであるか、クラスター内のほとんどのノードと通信できない場合でも、クラスターが引き続き正常に動作できるようにするため。
Redis クラスターはノードのマスター/スレーブ レプリケーション機能を使用します。 クラスター内の各ノードには 1 ~ N 個のレプリカ (レプリカ) があり、その 1 つがマスター ノード (マスター) であり、残りの N-1 個のレプリカはスレーブ ノードです。 (推奨される学習: Redis ビデオ チュートリアル )
Redis マスター/スレーブ レプリケーションのいくつかの一般的な方法
1 つのマスターと 2 つのスレーブ A(B, C) 1 つのマスターと 2 つのスレーブ
世代から世代への継承 (分散化) A - B - C、B はマスター ノード (C のマスター ノード) とスレーブ ノード (A のスレーブ ノード) の両方です
アンチカスタマー ベース (マスター ノードがダウンした後、スレーブ ノードをマスター ノードに手動でアップグレードします) & センチネル モード (マスター ノードがダウンした後、スレーブ ノードをマスター ノードに自動的にアップグレードします)
マスター/スレーブ レプリケーション:
1, redis のレプリケーション機能は、複数のデータベース間のデータ同期をサポートします。 1 つはマスター データベース (マスター) で、もう 1 つはスレーブ データベース (スレーブ) です。マスター データベースは読み取りおよび書き込み操作を実行できます。書き込み操作が発生すると、データは自動的にスレーブ データベースに同期されます。スレーブ データベースは通常、読み取り専用であり、マスター データベース から同期されたデータを受信します。マスター データベースは複数のスレーブ データベースを持つことができますが、スレーブ データベースはマスター データベースを 1 つだけ持つことができます。
2. Redis のレプリケーション機能は、データベースの読み取りと書き込みを効果的に分離し、サーバーの負荷容量を向上させることができます。マスター データベースは主に書き込み操作を実行し、スレーブ データベースは読み取り操作を担当します。
1: スレーブ データベースが起動すると、同期コマンドがプライマリ データベースに送信されます。
2: 同期コマンドを受信した後、プライマリ データベースはバックグラウンドでスナップショットの保存を開始します (保存期間中に受信したコマンドをキャッシュします。
3: スナップショットが完了すると、redis はスナップショット ファイルとキャッシュされたすべてのコマンドをスレーブ データベースに送信します。
4: データベースからスナップショット ファイルを受信した後、スナップショット ファイルをロードし、受信したキャッシュされたコマンドを実行します。
以上がRedis クラスター内のノード間のデータの一貫性を確保する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。