Redis レプリケーション (レプリカ)
それは何ですか
マスター/スレーブ レプリケーションであり、マスターは主に書き込み用、スレーブは主に読み取り用です。マスターデータが変更されると、新しいデータを他のスレーブデータベースに非同期で自動的に同期します。
読み取りと書き込みの分離
災害復旧
データのバックアップ
高い同時
実行性をサポートするための水平拡張
redis6379.conf、redis6380.conf、redis6381.conf
ヒント
3 つの仮想マシンは相互に ping できる必要があり、ファイアウォールの構成に注意を払う必要があります。
3 つのコマンド:
マスター/スレーブ レプリケーション
メイン ライブラリのレプリカ IP メイン ライブラリ ポート、マスター (ライブラリ) ではなくスレーブ (ライブラリ) あり
チェンジドア
新しいメイン ライブラリのスレーブ IP 新しいメイン ライブラリ ポート
自作の王様
誰の奴隷でもない
設定ファイルの内容を変更し、
例としてredis6379.confを操作する手順は以下のとおりです。
デーモン化を開く はい
バインド 127.0.0.1 をコメントアウトします
protected-mode no現在の作業ディレクトリ、dir pid ファイル名、pidfileログ ファイル名、logfileを指定する
ポートを指定します。ログ ファイルが起動ファイルと同じレベルにある場合は、./6379.log として構成できます。そうでない場合は、絶対パスをここに書き込む必要があります。これは大きな落とし穴です。!!
必須パス
dump.rdb
ファイル名、追加ファイル名
スレーブがマスターにアクセスするためのパスワード masterauth は、
マスターではなくスレーブに対して設定する必要があります
1 つのマスターと 2 つのスレーブ
解決策 1: マスターとスレーブの関係を書き込むように設定ファイルを修正する 設定ファイルの
実行: マスター ライブラリのレプリカ IP マスター ライブラリ ポート
スレーブ (ライブラリ) を構成しますが、(マスター) ライブラリは構成しません。最初にスレーブ マシンを
マスターとして構成し、次に 2 つのスレーブを順番に起動します
。マスターとスレーブの関係を表示します。
ログ
ホストログ、vim 6379.log
スタンバイログテール -f 6380.log
コマンド
127.0.0.1:6379> 情報レプリケーション
解決策 2: コマンド操作マニュアルの主従関係指示 スレーブ
マシンをシャットダウンし、設定ファイルの設定項目を削除する 現在 3 台のマシンはマスター状態にあり、それぞれが従属状態ではありません。
3人のマスター
プリセットスレーブでコマンドを実行
salveof メイン ライブラリ IP メイン ライブラリ ポート
VS コマンド間の違いを構成する
構成、永続的で安定しており永続的に有効、
コマンドは有効
トーチは引き継がれます
。前のスレーブは次のスレーブのマスターになることができ、スレーブは他のスレーブから接続および同期リクエストを受信することもできます。その後、スレーブはチェーン内の次のマスターとして機能し、書き込み量を効果的に削減できます。メインマスターの圧力と途中で方向を変える
:以前のデータはクリアされ、マスター/スレーブ関係が再確立され、最新の
スレーブオブがコピーされます。新しいマスターデータベースのIPとポート新しいマスター データベースは
反転されます
。slaveof no one は、現在のデータベースと他のデータベースの同期を停止しません。
レプリケーションの原則とワークフロー
スレーブが起動し、同期の開始時に
、スレーブがマスターに正常に接続された後、スレーブは同期コマンドを送信します。スレーブがマスターに初めて接続すると
、完全な同期 (フル コピー) が自動的に実行されます。スレーブの元のデータはマスター データによって上書きされ、クリアされます。
最初の接続では、フル レプリケーション
マスター ノードは、同期コマンドを受信した後、バックグラウンドでスナップショットの保存を開始します (つまり、RDB 永続性。RDB はマスター/スレーブ レプリケーション中にトリガーされます)。同時に、受信したすべてのコマンドを収集します。データセットを変更してキャッシュします。マスターノードがRDB永続化を実行した後、マスターはRDBスナップショットファイルとキャッシュされたすべてのコマンドをすべてのスレーブに送信して、完全な同期を完了します。スレーブサービスはデータベースファイルデータを受信した後、それを保存し
、それをメモリにロードして、レプリケーションの初期化を完了します。
ハートビートは継続し、通信
repl-ping-replica-period 10 は
安定に保たれます。増分レプリケーション
マスターは、新しく収集されたすべての変更コマンドを 1 つずつスレーブに自動的に送信し続けます
。同期が完了すると、スレーブはオフラインになります。
オフセット内では、マスターとスレーブはコピーされたオフセットとマスター ID を保存し、オフセットはバックログに保存されます。マスターは、ブレークポイント再開と同様に、キャッシュされたオフセット以降のデータのみをスレーブにコピーします。
コピーのデメリット
レプリケーション遅延、信号減衰
すべての書き込み操作は最初にマスターで実行され、その後スレーブに同期的に更新されるため、マスターからスレーブ マシンへの同期にはある程度の遅延が発生します。システムが非常にビジー状態の場合、遅延の問題はさらに深刻になります。スレーブマシンの数が増えると、この問題もさらに悪化します。
マスターが電話を切った場合はどうすればよいですか?
デフォルトでは、マスターはスレーブ ノードで自動的に選択されません。
毎回手動による介入が必要ですか? -> 無人化により需要が硬直化する