(VIII)Redisのエントリ - Redisのマスタースレーブのレプリケーション
ディレクトリ
- Redisのマスター・スレーブレプリケーションのプロフィール
- どのように構成する方法
- テストのコピー
- レプリケーションの動作
- センチネルモード
1.Redisマスタースレーブレプリケーションのプロフィール
交通システム、より多くの場合、Redisのサーバは、訪問のような大きな数をサポートすることができなかったこの問題を解決するために、一つの方法は、通常、マスタスレーブアーキテクチャのマスター/スレーブであると解釈され、書き込みベースでマスター、スレーブ読み取りほとんど、マスタは、構成に応じてマスタノードを更新、マシンは自動的にスレーブノードに同期されます。多くの場合、コピーからメインのRedisの分離が読み書きすると言われています。マスタ - スレーブ・アーキテクチャのRedisそれによってシステムを保護することは、特定の災害復旧能力を有する、Shihaiホストに障害が発生した主変換から達成することができる、読み取り及び書き込み分離に加えて実施することができます。
Redisの同期(SYNC)及びコマンド(コマンド伝搬)は、2つの操作の伝播に機能をコピーします。
- サーバからデータベースの同期ステータスは、データベース内のマスタ・サーバの現在の状態を更新することを特徴とします。
- コマンドは、プライマリ・データベースの動作状態を広げるために使用されるデータベース・サーバから戻って一貫性のある状態に主にさせ、状態から、メイン・データベース・サーバの不整合につながる、サーバーで変更されています。
設定方法2
変更されたプロファイル:
それぞれ3ポートのアナログRedisのサーバーを変更することで、まずredis.conf設定ファイル3つのコピー:複数のRedisのサービスを開く方法。
オープンデーモン:デーモン化はい
pidファイル名:セットのPIDファイル。たとえば:/var/run/redis_6379.pid、デーモンとして実行されているRedisのは、それがPIDファイルをデフォルトとします。この時間は/var/redis/run/redis_6379.pidの内側に書かれています
ポート番号を指定:3つのポート番号は6379,6380,6381です。
ログファイルの設定:ログ・ファイルを指定します。3つのファイルが6379.log ,, 6380.log、6381.log、設定されています。
設定dbfilename:ダンプ・ファイル名を指定します。
セット主従関係:
スレーブ上に配置された主従関係のRedis。主従関係と機械から次のコマンドを使用して、ビュー構成マスタ - スレーブ関係で:
マスタースレーブ構成:slaveofメイン図書館メインライブラリIPポート番号
主従関係を表示するには、次の情報replicati
停止する他のデータベースと現在のデータベースの同期を、メインデータベースに変身:SLAVEOF誰
スレーブ:
ホスト:
注意:redis.conf設定ファイルがない限り、すべての切断マスターとスレーブの後に再接続する必要性を。
3.テストマスタースレーブレプリケーション
フルボリュームコピー:
マシンからSLAVEOFコマンドの実行は、すべてのデータは、すべてのプライマリノードをコピーします。各パスSLAVEOFマスターからはバック増分で、完全なコピーの量を設定します。
インクリメンタルコピー:
ホストは機会からコピーし、新しいデータを書き込みます。
別々の読み取りおよび書き込み:
ここでは、マシンから新しいデータを書き込みます
この時点でマシンから見ると読み取り専用です。Redisのプロファイル、豚の胃のマシンから構成のスレーブ読み取り専用状態で。設定項目がnoに設定されている場合、スレーブはデータを書き込むことができます。
この場合、新しいデータはそれをホストするために、そこからコピー機に書かれていますか?図可視およびホストマシンからデータをコピーしません。
ホストがダウンしています:
この時、ホストの状態からどのように:
したがって、ホストは、スレーブがまだスレーブで、ダウンしました。ホストが再び正常に動作している場合は、元のホストの役割を復元するには、この時間はまだホストです。我々はSLAVEOF誰のコマンドを実行していない場合は宿主応答の前に6380で新しいホストを設定します。ホストと修復した後、ホストは再びホストではありませんが、今回のホストまたは6380。このとき、元のホストは、まだホストではありませんが、もはや、他の2台のマシンは、主従関係を持っています。
4.原理をコピーします。
これは、スレーブ、マスタに正常に接続を開始するためにsyncコマンドを送信します。
マスターは完全同期を完了するために、スレーブに、バックグラウンド・プロセスが終了した後、すべてのデータがsetコマンドを変更するために受信したマスタ転送データファイル全体を収集しながら、バックグラウンドをアーカイブするプロセスを開始するために命じました。
データファイルを受信した後、スレーブデータベースサービス、それを保存し、それをメモリにロードします全額をコピーします。
インクリメンタルコピー:マスターがコマンドスレーブに合格するために、すべての新しい変更を収集していきます、同期が完了すると
しかし限り、接続が再マスターであるように、完全な同期(フルボリュームコピー)が自動的に実行されます
5.センチネルモデル
実際には、取るためにマスターマルチスレーブモードならば、ホストがダウンしているとき、ホストが動作していないこの時点で再生するためのホスト役の役割ではない、ホストにマシンからの変換があり、仕事のホストが行われ、これは見張りモードです。センチネル・サーベイランスモードはRedisのは良い(あるいは少なくともマスターノードが存在することを確認してください)、ホストの問題ならば、センチネルは、新しいホストにマシンから自動的に次のものをホストするに従って動作する、とさせるために意図されていますマシンと新しいホストから他の確立された主従関係。
どのように設定するには:
新しいプロファイルディレクトリsentinel.confファイル名の下に間違っていないし、適切なコンテンツを設定する必要があります。
センチネルモニタは127.0.0.1 6379 1(自分の名前から)データベース名を監視対象
1上記の最後の数は、投票数がマスターになった後ホストは、ホストを引き継ぐ者を確認するために軟膏票をハングアップさせ示し
センチネルモードを開始します。
Redisの-センチネル/myredis/sentinel.conf
上記ディレクトリ構成それらの実際の状況に応じては、別のディレクトリであってもよいです
ホストは、新しいホストに投票する機会から2(この時点ではRedisのログこれらの操作から見ることができます)、ダウンしています。ホストが再び回復した場合は、作業を継続するために、新しいホストの下の奴隷になります。
複製の主な欠点から
すべての操作がマスター上で動作し、その後、スレーブへの更新を同期する最初のもので書くので、システムがビジー状態のとき、同期機をマスタからスレーブに遅延があるので、遅延の問題は、スレーブマシンの数を増やし、より深刻になるだろうまた、この問題を悪化させます。