ホームページ  >  記事  >  データベース  >  Redisでマスターとスレーブを同期する方法

Redisでマスターとスレーブを同期する方法

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

Redisでマスターとスレーブを同期する方法

MySQL マスター/スレーブ レプリケーションと同じ理由で、Redis は読み取りと書き込みが非常に高速ですが、非常に高い読み取りプレッシャーが発生する可能性もあります。読み取りプレッシャーを共有するために、Redis はマスター スレーブ レプリケーションをサポートしています。Redis のマスター スレーブ構造は、1 つのマスターと複数のスレーブ、またはカスケード構造を使用できます。 次の図は、カスケード構造を示しています。 (推奨学習: Redis ビデオ チュートリアル )

Redisでマスターとスレーブを同期する方法

Redis のマスター/スレーブ レプリケーションは、完全同期と増分同期に分類できます。いっぱいかどうか。

1 完全同期

Redis の完全レプリケーションは通常、スレーブの初期化フェーズ中に発生します。このとき、スレーブは転送する必要があります。マスター上のすべてのデータをコピーします。両方のコピーを作成します。具体的な手順は次のとおりです:

1) スレーブ サーバーはメイン サーバーに接続し、SYNC コマンドを送信します;

2) メイン サーバーは SYNC ネーミングを受信した後、 RDB ファイルを生成し、バッファ レコードを使用する BGSAVE コマンド その後実行されるすべての書き込みコマンド;

3) マスター サーバーの BGSAVE が実行された後、スナップショット ファイルがすべてのスレーブ サーバーに送信され、実行された書き込みコマンドは引き続き実行されます。送信期間中に記録される;

4) スナップショット ファイルを受信した後、スレーブ サーバーは古いデータをすべて破棄し、受信したスナップショットをロードします;

5) マスター サーバーのスナップショットが送信された後、バッファ内の書き込みコマンドのスレーブ サーバーへの送信を開始します。

6) スレーブ サーバーはスナップショットのロードを完了し、コマンド要求の受信を開始し、マスター サーバーのバッファから書き込みコマンドを実行します。

Redisでマスターとスレーブを同期する方法上記の手順を完了すると、スレーブ サーバーのデータの初期化が完了します。すべての操作において、スレーブ サーバーはユーザーからの読み取りリクエストを受信できるようになります。

2 増分同期

Redis 増分レプリケーションとは、スレーブが初期化されて開始されるときに、マスター サーバーで発生する書き込み操作をスレーブ サーバーに同期するプロセスを指します。正常に動作しています。

増分レプリケーションのプロセスは、主に、マスター サーバーが書き込みコマンドを実行するたびに、同じ書き込みコマンドをスレーブ サーバーに送信し、スレーブ サーバーが受信した書き込みコマンドを受信して​​実行するというものです。

3 Redis のマスターとスレーブの同期戦略

マスターとスレーブが接続されたばかりの場合は完全同期が実行され、完全同期が完了すると増分同期が行われます。は発表された。もちろん、必要に応じて、スレーブはいつでも完全な同期を開始できます。 Redis の戦略では、何があっても最初に増分同期が試行され、失敗した場合はスレーブ マシンが完全同期を実行する必要があります。

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

以上がRedisでマスターとスレーブを同期する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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