ホームページ  >  記事  >  データベース  >  Redis の増分同期を実装する方法

Redis の増分同期を実装する方法

(*-*)浩
(*-*)浩オリジナル
2019-11-27 09:49:313684ブラウズ

Redis の増分同期を実装する方法

Redis の既存の同期戦略

1. 増分同期機能コンポーネント (推奨学習: Redis ビデオチュートリアル)

1) マスター サーバーのレプリケーション オフセットとスレーブ サーバーのレプリケーション オフセット;

マスター サーバーは、データを受信するたびに N バイトをスレーブ サーバーに伝播します。 、独自のレプリケーション オフセットの値に N を追加します;

スレーブ サーバーはマスター サーバーから送信された N バイトのデータを受信するたびに、独自のレプリケーション オフセットを追加します。価値。

2) メイン サーバーのレプリケーション バックログ バッファー;

メイン サーバーによって維持される固定長のキュー、デフォルトは 1M ですが、メイン サーバーがコマンドの伝播を実行する場合、書き込みコマンドのみを送信する すべてのスレーブ サーバーでは、書き込みコマンドもレプリケーション バックログ バッファのキューに入れられます。

3) サーバーの実行 ID。

各サーバーは起動時に実行 ID (runid) をランダムに生成します。

2. 増分同期の実装

1) スレーブ サーバーは、マスター サーバーの runid とレプリケーション オフセットを含む PSYNC コマンドをマスター サーバーに送信します。

2) メイン サーバーは、runid が自身の runid と一致するかどうかを確認します。一致しない場合は、完全なコピーが実行されます。

3) メイン サーバーは、コピー オフセットが範囲内であるかどうかを確認します。コピー;

4) 両方の検証に合格した場合、マスター サーバーはバックログ領域のオフセット以降のすべてのデータをスレーブ サーバーに送信し、マスター サーバーはスレーブ サーバーは再び一貫した状態に戻ります。

3. 結論

1) スレーブ サーバーが保持するマスター サーバーの runid とオフセットが一貫している場合にのみ、Redis は増分同期戦略を採用します。は大きな制限です;

2) したがって、redis は、スレーブ サーバーが再起動される場合、マスター サーバーが交換される場合、または接続時間が長すぎる場合に完全同期戦略を採用します。

Redis 関連の技術記事の詳細については、Redis 入門チュートリアル 列にアクセスして学習してください。

以上がRedis の増分同期を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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