redisマスタスレーブレプリケーション

1880 ワード

redisマスタスレーブ設定


redisプライマリ・セカンダリ・バックアップのアクセサリは簡単です.マスターでサーバのipをバインドし、slaveでslaveeofを設定すればよい
例えばmaster:192.168.206.200 slave:192.168.206.201
次のように構成されています.
#master  
bind 192.168.206.200
port 6379

#############################
#slave   
slaveof 192.168.206.200 6379
slave-serve-stale-data yes #yes:  master    slave           。no:     
slave-read-only yes #   slave  ,2.6       

またdisklessを配置するが,この方式はredis公式の説ではまだ実験段階である.
masterオプション構成
min-slaves-to-write 3 #       3 slave            
min-slaves-max-lag 10 #        10s

slaveオプション構成
slave-announce-ip 5.5.5.5 
slave-announce-port 1234 

この構成の目的は、masterに自分のipとポートを明記することです.
注意:masterノードが停止すると、サービスからの同期に失敗します。一般的にsentinelを使用して同期監視と切り替えを行います。

redis主従特性

  • redisのプライマリスレーブ同期時に非同期で行われます.redis 2.8から、slaveは、周期的な同期ストリームで処理されるデータの数を通知する.
  • 1つのmasterは、複数のslave
  • を有することができる
  • slaveは他のsalveに接続することもでき、1つの流状(cascading-like)構造
  • を形成することができる.
  • redisのレプリケーションは非ブロックである、すなわちmasterは、1つ以上の同期データを与えるときにクライアントの要求
  • を処理することができる.
  • redisのレプリケーションはslave上でも非ブロックであり、slaveは以前の古いデータ処理要求を利用して、新しい古いデータ
  • と同期して完了することができる.
  • レプリケーションは、拡張性のために使用することができ、読み取り専用クエリのために複数のスレーブ局(例えば、低速O(N)動作をスレーブ局にアンロードすることができる)、または単純にデータ冗長
  • に使用することができる.
  • プライマリ・セカンダリ・バックアップは、masterがすべてのデータを永続化することを回避し、masterの非永続化を設定し、複数のslaveの1台を永続化することができます.しかし、この設定では注意してください.masterを再起動すると空のデータになります.このときslaveが同期すると、データが失われます.すべての再起動時にslave永続化されたデータを使用して再起動します.

  • さぎょうげんり


    スレーブマシンを構築すると、psyncコマンドから送信しようとします.ホストは、これが最初のリンクであるかどうかを検出します.そうでない場合、ホストは差異データのみを送信します.他の場合は、すべてのデータを同期します.すべて同期して出発すると、ホストはバックグラウンド保存機能を起動してrdbファイルを生成し、バッファを開いて新しい書き込みを受け入れる.保存作業が完了したらrdbファイルをスレーブマシンに送信し,次にバッファの命令もスレーブマシンに送信し,同期を実現する.
    次のセクションでは、高可用性(High Availability)のredisサービスの構築方法についてまとめます.