Redis はマスター/スレーブ レプリケーションを学習します マスター/スレーブ

coldplay.xixi
リリース: 2021-03-08 10:06:43
転載
1894 人が閲覧しました

Redis はマスター/スレーブ レプリケーションを学習します マスター/スレーブ

とは 専門用語: これは、マスター/スレーブ レプリケーションと呼ばれるものです。ホスト データが更新された後構成と戦略に従って構成され、スタンバイ マシンのマスター/スレーバー メカニズムに自動的に同期されます。マスターは主に書き込み用であり、スレーブは主に読み取り用です。

読み取りと書き込みの分離

災害復旧

##推奨 (無料):

redis 遊び方

• マスター (ライブラリ) ではなくスレーブ (ライブラリ) を設定します • スレーブ ライブラリ設定コマンド:slaveof master library IP master library port

•マスターから切断すると、redis.conf ファイルで設定しない限り、再接続する必要があります (特定の場所: redis.conf search

# REPLICATION
#)
• info replication
• 設定ファイルを変更する詳細操作
• 複数のredis.confファイルをコピーし、'redis[ port].conf' Rename
• デーモン化をオンにする Yes
• pidファイル名
• ポートを指定
• ログファイルname
· dump.rdb name

replication English [ˌreplɪ'keɪʃ(ə)n] American [ˌreplɪ'keɪʃ(ə)n] n.

(絵画など)コピー; コピー; 繰り返し (実験); (特に防御側への答え)

3 つの一般的なトリック

1 つのマスターと 2 つのスレーブ ( 1 つのホスト、2 つのスレーブ)

Init

Redis はマスター/スレーブ レプリケーションを学習します マスター/スレーブ 127.0.0.1 6379d
のスレーブを介してスレーブを設定します。この時点で、1 つのマスターと 2 つのスレーブはset up
マスターに k4 v4 を設定し、2 台のスレーブを取得すると k4 が表示されます。
1. スレーブの前に k1 と k2 を設定した場合、スレーブ マシンはその値を確認できますか?
はい、スレーブ マシンは受信後、最初から最後までしか再生できません。ホストですべて再生します
2. このとき、ホストでは set k6 v6 が設定され、2 台のスレーブでも set k6 v66 が設定されます。このときどうなりますか?スレーブとホストは同じコマンドを実行できますか?
マスターはマスターとして書き込み、スレーブはマスターとして読み取ります。
この時点で、スレーブは書き込みできず、例外が報告されます。
3. ホストは死亡しましたか?どのような可能性がありますか?機械から?入れたまま?
まだ奴隷です、そこにいてください。あなたが引き継ぐことができない場合、リーダーは戻ってきます、すべては以前と同じになります
4. スレーブマシンは死んでいますか?機能不全から回復しますか?
スレーブ マシンが停止した場合、回復するとマスターになります。理由は次のとおりです。 • redis.conf で設定しない限り、マスターから切断されるたびに再接続する必要があります。大軍に追いつきたい場合は、slaveof コマンドを使用してください。最初からやり直して、コンソールを最初から最後までプレイしてください。

火の受け渡し #コアアイデア: 分散化

前のスレーブは次のスレーブのマスターになることができ、スレーブは接続や接続を受け取ることもできます他のスレーブからの同期リクエスト、その後スレーブがチェーン内の次のマスターとなり、マスターの書き込み圧力を効果的に軽減できます (スレーブのスレーブは依然としてスレーブです)

途中で方向を変更: 以前のデータはクリアされます最新のコピーが再確立されます。
新しいメイン ライブラリのスレーブ IP 新しいメイン ライブラリ ポート
たとえば、79 は 80 のホストであり、80 は 81 のホストです。 79 では、set k9 v9 は 80 と 81 の間でクエリできます。80 ホストで情報再公開を使用すると、これはスレーブですが、スレーブにも接続されます。

反顧客ベース

SLAVEOF no one

現在のデータベースと他のデータベースの同期を停止し、プライマリ データベースに切り替えます

ホストが切断され、2 つのスレーブがマシンでボスを選択する必要があります。このとき、誰のスレーブでもない 80 に対してコマンドを使用して、80 をリーダーにします。 81 の場合、80 のスレーブを使用すると、80 ビットのホストが認識され、80 のデータが変更され、81 のクエリも可能になります。元のホスト79が戻ってきたら、その時点で独立した個体となる。

コピー原理

スレーブが正常に起動され、マスターに接続されると、同期コマンドが送信されます。

マスターは、バックグラウンドを開始するコマンドを受け取ります。プロセスを保存し、同時に受信したすべてを収集してデータ セット コマンドを変更します。バックグラウンド プロセスが実行された後、マスターはデータ ファイル全体をスレーブに転送して完全な同期を完了します。

フル コピー: 後スレーブ サービスはデータベース ファイル データを受信し、それを保存してメモリにロードします。
増分レプリケーション: マスターは、同期を完了するために、新しく収集されたすべての変更コマンドをスレーブに渡し続けます
ただし、マスターが再接続されている限り、完全同期 (完全レプリケーション) が自動的に実行されます
初回は完全コピーで、次に増分コピーが行われます。

センチネル モード(センチネル)

センチネルのグループは複数のマスターを同時に監視できます (パトロール センチネル)

とはit

主に顧客向けの自動バージョンです。バックグラウンドでホストに障害が発生したかどうかを監視できます。障害が発生した場合は、

遊び方(操作手順)

1. 構造を調整します。6379 は 6380 と 6381 をもたらします
2. 新しい Sentinel.conf ファイルを作成します。名前は間違ってはいけません
3. Sentinel を設定し、内容を入力します
1 .sentinel Monitor 監視対象のデータベースの名前 (独自の名前を選択してください) 127.0.0.1 6379 1
^ ^ 2. 上記の最後の数字 1 は、ホストが電話を切った後、誰が引き継ぐかをスレーブが投票することを意味します。投票数を獲得した人がホストとなります (PS.公式サイトの記載とは異なります。以下に公式ドキュメントがあります)
4. Sentinelを起動
1. redis -sentinel /sentinel.conf (上記のディレクトリは実際の状況に応じて構成されており、ディレクトリは異なる場合があります)
5. 通常のマスター/スレーブのデモンストレーション
6. 元のマスターはダウンしています
7.新しいものに投票してください
8. マスターとスレーブを再起動して作業を続行し、情報のレプリケーションを確認します

質問: 以前にハングしたマスターが再起動された場合、2 つのマスター間に競合は発生しますか?
回答: いいえ、元のマスターはスレーブになります。

レプリケーションのデメリット

レプリケーションの遅延

すべての書き込み操作が実行されるため、最初にマスター上で同期され、その後スレーブ マシンに同期されるため、マスターからスレーブ マシンへの同期にはある程度の遅延が発生します。システムが非常にビジーな場合、遅延の問題はさらに深刻になり、スレーブ マシンの数が増加します。スレーブ マシンもこの問題をさらに悪化させます。

その他の関連する無料学習の推奨事項: redis チュートリアル

以上がRedis はマスター/スレーブ レプリケーションを学習します マスター/スレーブの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:csdn.net
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート