ホームページ  >  記事  >  データベース  >  Redis クラスター内のノード間のデータの一貫性を確保する方法

Redis クラスター内のノード間のデータの一貫性を確保する方法

(*-*)浩
(*-*)浩オリジナル
2019-11-20 14:16:357254ブラウズ

Redis クラスター内のノード間のデータの一貫性を確保する方法

一部のノードがオフラインであるか、クラスター内のほとんどのノードと通信できない場合でも、クラスターが引き続き正常に動作できるようにするため。

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。