これは、マスター/スレーブ レプリケーションと呼ばれるものです。ホスト データが更新されると、構成とポリシーに従って、スタンバイ マシンのマスター/スレーバー メカニズムに自動的に同期されます。マスターは主に書き込み用です。 、スレーブは主に読書用です。
1. 読み取りと書き込みの分離;
2. 災害復旧。
1. スレーブ (ライブラリ) は装備されていますが、マスター (ライブラリ) は装備されていません;
2. スレーブ ライブラリの構成: smileof [メイン ライブラリ IP] [メイン ライブラリ ポート];
補足: redis.conf ファイルを設定しない限り、スレーブはマスターから切断されるたびに再接続する必要があります。
タイプ情報のレプリケーションを次のように設定します。 Redis のマスター/スレーブ情報を表示します。
3. 設定ファイルの詳細を変更します
#- 複数の redis.conf ファイルをコピーします - ポートを指定します#-デーモン化を開くはい
##-PID ファイル名
#-ログ ファイル名 -Dump.rdb 名 4. 3 つの一般的なトリック- 1 つのマスターと 2 つのサーヴァント
1 つのマスター、2 つのスレーブ。スレーブは読み取りのみ可能ですが書き込みはできません。スレーブがマスターから切断されると、必要なスレーブになります。この場合のみ、以前のマスターとスレーブの関係が確立され、マスターが切断された後もマスター関係はまだ存在しており、マスターを再起動することで復元できます。- ファイアの引き継ぎ
前のスレーブは次のスレーブのマスターになることができ、スレーブは他のスレーブからの接続および同期リクエストを受信することもできます。スレーブの場合、スレーブはチェーン内の次のスレーブのマスターとして機能し、マスターの書き込みプレッシャーを効果的に軽減できます。スレーブサーバーがデータ同期のマスターサーバーを途中で変更した場合、古いデータは消去され、最新のマスターサーバーとの同期が再確立されます。#-顧客に敵対する
マスターが電話を切ると、スレーブはコマンド「slaveof no one」を入力して、現在の Redis が他のマスター Redis とデータを同期するのを停止し、それをマスター Redis に変えることができます。 。 4. コピー原則1. スレーブが起動してマスターに正常に接続すると、同期コマンドが送信されます; 2. マスターがコマンドを受信した後、保存プロセスを開始し、同時にデータ セットを変更するために受信したすべてのコマンドを収集します。バックグラウンド プロセスが実行された後、マスターはデータ ファイル全体をスレーブに転送して、完全な同期を完了します。3完全レプリケーション: スレーブ サービスはデータベース内にあります ファイル データが保存された後、保存され、メモリにロードされます; 4. 増分コピー: マスターは、新しく収集されたすべての変更コマンドを順番にスレーブに渡し続けます。完全同期; 5. ただし、マスターが再接続されている限り、完全同期 (完全レプリケーション) が自動的に実行されます。 5. センチネルモード (sentinel)マスターデータベースの障害をバックグラウンドで監視し、障害が発生した場合にはスレーブデータベースを自動で監視する顧客志向の自動バージョンです。投票数に基づいてマスターデータベースに変換されます。センチネルのグループは複数のマスターを同時に監視できます。2 、センチネルを設定し、sentinel.conf ファイルに内容を入力します。
センチネル モニターの監視対象データベース名 (自分で名前を付けます) ip ポート 1
redis_6379.conf redis_6380.conf
bind 127.0.0.1 port 6379 protected-mode yes daemonize yes pidfile /var/run/redis_6379.pid logfile "/Data/apps/redis-3.2.12/logs/redis_6379.log" dbfilename dump_6379.rdb dir /Data/apps/redis-3.2.12/workplace requirepass paopao
bind 127.0.0.1 port 6380 protected-mode yes daemonize yes pidfile /var/run/redis_6380.pid logfile "/Data/apps/redis-3.2.12/logs/redis_6380.log" dbfilename dump_6380.rdb dir /Data/apps/redis-3.2.12/workplace slaveof 127.0.0.1 6379 masterauth paopao
redis-server /Data/apps/redis-3.2.12/conf/redis_6379.conf redis-server /Data/apps/redis-3.2.12/conf/redis_6380.conf
# 当从库同主机失去连接或者复制正在进行,从机库有两种运行方式: # 1) 如果slave-serve-stale-data设置为yes(默认设置),从库会继续相应客户端的请求 # 2) 如果slave-serve-stale-data是指为no,除去INFO和SLAVOF命令之外的任何请求都会返回一个 # 错误"SYNC with master in progress" slave-serve-stale-data yes slave-read-only yes # 从库会按照一个时间间隔向主库发送PINGs.可以通过repl-ping-slave-period设置这个时间间隔,默认是10秒 repl-ping-slave-period 10 # repl-timeout 设置主库批量数据传输时间或者ping回复时间间隔,默认值是60秒 # 一定要确保repl-timeout大于repl-ping-slave-period repl-timeout 60 # slave节点磁盘慢, 网速快时, 置为yes, master上的rdb文件将以socket方式传输, 跳过磁盘存储 repl-diskless-sync no # 传输前等待秒数, 为了等待更多的slave节点加入 repl-diskless-sync-delay 5 # 传输时,是否禁用tcp nodelay repl-disable-tcp-nodelay no # 复制缓冲区大小 repl-backlog-size 1mb # 复制缓冲区释放周期 repl-backlog-ttl 3600 # 为了sentinal模式, 选举master准备, 数值越小, 优先级越高 slave-priority 100 # require at least 3 slaves with a lag <= 10 seconds use min-slaves-to-write 3 min-slaves-max-lag 10 # 可覆盖bind, port 配置, 对外ip port slave-announce-ip 5.5.5.5 slave-announce-port 1234
以上がRedis はマスター/スレーブ レプリケーションをどのように実装しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。