redisプライマリ・スタンバイ同期構成方法


1.マスターの構成
ホストip:10.1336.116.146 port:6789スペアip:10.1336.3.1144
バックアップを構成するには、2つの方法があります.
方法1:スペアプロファイルの変更
redis.confに追加
daemonize yes
slaveof 10.136.16.146 6789
#        ,         
# masterauth 

スペアでredisを起動する
redis-server ./tmp/redis.conf

バックアップreidsに接続しinfo replicationを実行すると、次の結果が表示されます.
127.0.0.1:9303> info replication
# Replication
role:slave
master_host:10.136.16.146
master_port:6789
master_link_status:up
master_last_io_seconds_ago:0
master_sync_in_progress:0

...

この時、私たちの主な準備はすでにできています.データは自動的に同期されます(ホストの前のデータも含まれます).前のホストにデータがある場合は、スタンバイで読み込むことができます.
ホストに接続し、info replicationを実行すると、次の結果が表示されます.
10.136.16.146:6789> info replication
# Replication
role:master
connected_slaves:1
slave1:ip=10.136.30.144,port=9303,state=online,offset=40383758059,lag=0
master_repl_offset:40383983932

...

ホストにバックアップredisが接続されているのが、起動したばかりのものです.
方法2:動的にスペア構成を変更する
もちろん、バックアップredisプロファイルを変更したり、redis-serverを再起動したりする権限がない場合があります.この場合、プライマリ・スタンバイを構成するには、スタンバイredisに接続して実行するだけです.
slaveof 10.136.16.146 6789

#     ,      
#config set masterauth 

ホストの構成の目的も達成できます
2.マスターのキャンセル
メッセージマスター1を取得するには、2つの方法がある.プロファイルからslabeofの構成を直接削除し、redis-server 2を再起動します.バックアップへの接続、実行
slaveof no one

プライマリ・スタンバイをキャンセルすると、スタンバイでinfo replicationが実行され、
127.0.0.1:9303> info replication
# Replication
role:master
connected_slaves:0
master_repl_offset:0
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0

現在のマシンの役割はslaveではなくmasterです
3.使用可能ないくつかのパラメータ
  • slave-read-only:slaveが読み取り専用であるかどうかを制御する2つの値yes/no
  • slave-serve-stale-data:slaveとmasterが接続を失ったり同期したりしたときのslaveの動作を制御します.
  • yes(デフォルト):クライアント要求は正常に処理されますが、データは古い
  • である可能性があります.
  • no:クライアントへのSYNC with master in progress
  • の返信

    4.推奨事項
    プライマリ・スタンバイが構成されている場合は、masterがデータの永続化を開始するか、少なくともmasterが停止した後に自動的に再起動しないようにすることをお勧めします.
    このようなシーンを想像することができます:masterは持続化を開いていないで、masterは掛けた後に監視されて再起動されます.この場合、masterには何のデータもありません.slaveはmasterと同期するため、上のデータも空になります.