Redisの高可用性ソリューションのマスター/スレーブ同期
序文
この環境は、Redis学習環境を構築するためのCentos 7.8システムに基づいています。
具体的な構築については、Redis-5.0.9環境の展開を参照してください。
Redisには、データベースの冗長性の問題を解決するためのマスター/スレーブ同期機能が付属しており、構成は比較的簡単です。次に詳しく紹介します
マスタースレーブレプリケーションの役割
- データの冗長性:マスタースレーブレプリケーションは、データのホットバックアップを実現します。これは、永続性に加えてデータの冗長性の方法です。
- 障害回復:マスターノードに問題がある場合、スレーブノードは迅速な障害回復を実現するためのサービスを提供できます。実際、これは一種のサービス冗長性です。
- 負荷分散:マスタースレーブレプリケーションに基づいて、読み取りと書き込みを分離することで、マスターノードが書き込みサービスを提供し、スレーブノードが読み取りサービスを提供します(つまり、アプリケーションはRedisの書き込み時にマスターノードに接続しますデータ、およびアプリケーションはRedisデータを読み取るときにスレーブノードに接続します)、サーバー負荷を共有します。特に、書き込みを減らして読み取りを増やすシナリオでは、複数のスレーブノードで読み取り負荷を共有すると、Redisサーバーの同時実行性が大幅に向上します。
- 読み取り/書き込み分離:読み取り/書き込み分離を実現するために使用できます。メインライブラリはライブラリから書き込みおよび読み取りを行います。読み取り/書き込み分離は、サーバーの負荷容量を増やすだけでなく、スレーブライブラリの数を変更することもできます。需要の変化に応じて;
- 高可用性の基礎:上記の機能に加えて、マスタースレーブレプリケーションはセンチネルとクラスターの実装の基礎でもあります。したがって、マスタースレーブレプリケーションはRedisの高可用性の基礎です。
マスタースレーブレプリケーションプロセス
Redisマスタースレーブレプリケーションプロセス:
- スレーブはマスターとの接続を確立し、同期コマンドを送信します
- マスターは、データベーススナップショットをファイルに保存するためのバックグラウンドプロセスを開始し、マスターマスタープロセスは、新しい書き込みコマンドの収集とキャッシュを開始します。
- バックグラウンドで保存した後、このファイルをスレーブに送信します
- スレーブはこのファイルをハードドライブに保存します
マスタースレーブの完全なデータ同期プロセス
マスターは複数のスレーブを持つことができ、スレーブは複数のスレーブを持つことができます。このようにして、強力なマルチレベルサーバークラスターアーキテクチャが形成されます。
環境への備え
役割 | ノード | ip | Redisバージョン |
---|---|---|---|
メインサーバー | reids-yum | 192.168.5.11 | Redis-5.0.9 |
スレーブサーバー | reids_source_code | 192.168.5.12 | Redis-5.0.9 |
メインサーバーの構成
[root@reids-yum ~]# vim /etc/redis.conf
bind 192.168.5.11
[root@reids-yum ~]# systemctl restart redis
サーバーから構成する
[root@reids_source_code ~]# vim /etc/redis/redis.conf
bind 192.168.5.12
replicaof 192.168.5.11 6379
[root@reids_source_code ~]# systemctl restart redis
ビューマスター・スレーブ同期ステータス
マスター-
スレーブ
テストマスタースレーブ同期効果
# 主写入数据
192.168.5.11:6379> set name wan
OK
192.168.5.11:6379> set age 20
OK
192.168.5.11:6379> get gender
"man"
# 从查看写入
192.168.5.12:6379> keys *
1) "gender"
2) "age"
3) "name"
192.168.5.12:6379> mget name age gender
1) "wan"
2) "20"
3) "man"
# 主删除数据
192.168.5.11:6379> del age
(integer) 1
# 从查看数据
192.168.5.12:6379> keys *
1) "gender"
2) "name"
マスター/スレーブ同期構成が成功しました!!!