Redisマスタースレーブレプリケーションとセンチネルモードのビルドドキュメント

1つは、マスタースレーブレプリケーションです。

マスタースレーブレプリケーション:マスタースレーブレプリケーションは高可用性Redisの基盤であり、Sentinelとクラスターはすべてマスタースレーブレプリケーションに基づいており、高可用性を実現しています。マスタースレーブレプリケーションは、主にデータのマルチマシンバックアップ、および読み取り操作の負荷分散と単純な障害回復を実装します。欠陥:障害回復を自動化できません:書き込み操作を負荷分散できません。ストレージ容量は単一のマシンによって制限されます。

ホスト IPアドレス ソフトウェアパッケージ
マスターノード 192.168.199.40 redis-5.0.7.ta​​r.gz
Slave1ノード 192.168.199.50 redis-5.0.7.ta​​r.gz
Slave2ノード 192.168.199.60 redis-5.0.7.ta​​r.gz
systemctl stop firewalld
setenforce 0

Redisをインストールする

[NoSQLRedisの構成と最適化]

Redis構成ファイルの変更(マスターノード)

vim /etc/redis/6379.conf
bind 0.0.0.0                        #70,修改监听地址为0.0.0.0
daemonize yes                       #137行,开启守护进程
logfile /var/ log/redis_6379.log    #172行,指定日志文件目录
dir /var/lib/redis/6379             #264行,指定工作目录
appendonly yes                      #700行,修改为yes开启AOF持久化功能

/etc/init.d/redis_6379 restart

Redis構成ファイルの変更(スレーブノード)

vim /etc/redis/6379.conf
bind 0.0.0.0                       #70行,修改监听地址为0.0.0.0
daemonize yes                      #137行,开启守护进程
logfile /var/log/redis_6379.log    #172行,指定日志文件目录
dir /var/lib/redis/6379            #264行,指定工作目录
replicaof 192.168.199.40 6379      #288行,指定要同步的Master节点IP和端口
appendonly yes                     #700行,开启AOF持久化功能

/etc/init.d/redis_6379 restart

マスタースレーブ効果を確認します

マスターノードのログを見てください

tail -f /var/log/redis_6379.log 

ここに画像の説明を挿入

マスターノードのスレーブノードを確認します

redis-cli info replication

ここに画像の説明を挿入

次に、Redis歩哨モードを構築します

センチネルの起動はマスタースレーブモードに依存するため、センチネルモードに移行する前にマスタースレーブモードをインストールする必要があります。すべてのノードがセンチネルモードをデプロイする必要があります。センチネルモードは、すべてのRedis作業ノードが正常かどうかを監視します。 。マスターが表示された場合他のノードがマスターノードとの接続を失ったために問題が発生した場合、それらは投票します。投票の半分以上がこのマスターに問題があると見なされ、その後、歩哨室は通知されると、スレーブの1つが新しいマスターとして選択されます。

systemctl stop firewalld
setenforce 0

Redis歩哨モードの構成ファイルを変更します(すべてのノード)

vim /opt/redis-5.0.7/sentinel.conf
protected-mode no                                    #17行,关闭保护模式
port 26379                                           #21行,Redis哨兵默认的监听端口
daemonize yes                                        #26行,指定sentinel为后台启动
logfile "/var/1og/sentinel.log"                      #36行,指定日志存放路径
dir "/var/lib/redis/6379"                            #65行,指定数据库存放路径
sentinel monitor mymaster 192. 168.199.40 6379 2     #84行,修改,指定该哨兵节点监控192.168.199.40:6379这个主节点,该主节点的名称是mymaster,最后的2的含义与主节点的故障判定有关:至少需要2
个哨兵节点同意,才能判定主节点故障并进行故障转移
sentinel down-after-milliseconds mymaster 3000       #113行,判定服务器down掉的时间周期,默认30000毫秒(30 )
sentinel failover-timeout mymaster 180000            #146行,故障节点的最大超时时间为180000 (180)

センチネルモードをアクティブにする

最初にマスターを開始し、次にスレーブを開始します

cd /opt/redis-5.0.7/ 
redis-sentinel sentinel.conf &

ここに画像の説明を挿入

歩哨情報を見る

redis-cli -p 26379 info sentinel

ここに画像の説明を挿入

故障シミュレーション

redis-serverプロセス番号を表示する

ps -ef | grep redis

ここに画像の説明を挿入

マスターノードのredisサーバーのプロセスIDを強制終了します

kill -9 8503     #Master节点上redis-server的进程号

ここに画像の説明を挿入

redis-cli -p 26379 info sentinel

ここに画像の説明を挿入

ここに画像の説明を挿入

3、Redisクラスターを構築します

一般的に、redisクラスターには6つのノード、3つのマスター、3つのスレーブが必要です。
便宜上、ここのすべてのノードは同じサーバー上でシミュレートされます。
ポート番号:
3つのマスターノードポート番号:6000/6001/6002、および対応するスレーブノードポート番号:6004/6003/6005で区別されます。

cd /etc/redis/
mkdir -p redis-cluster/redis600{
    
    0..5}

for w in {
    
    0..5}
do
cp /opt/redis-5.0.7/redis.conf  /etc/redis/redis-cluster/redis600$w
cp /opt/redis-5.0.7/src/redis-cli /opt/redis-5.0.7/src/redis-server /etc/redis/redis-cluster/redis600$w
done

ここに画像の説明を挿入

クラスター機能をオンにする

其他5个文件夹的配置文件以此类推修改,注意6个端口都要不一样。
vim /etc/redis/redis-cluster/redis6000/redis.conf

#bind 127.0.0.1                       #69行,注释掉bind项,默认监听所有网卡
protected-mode no                     #88行,修改,关闭保护模式
port 6000                             #92行,修改,redis 监听端口,
daemonize yes                         #136行,开启守护进程,以独立进程启动
appendonly yes                        #700行,修改,开启AOF持久化
cluster -enabled yes                  #832行,取消注释,开启群集功能
cluster-config-file nodes-6379.conf   #840行,取消注释,群集名称文件设置
cluster-node-timeout 15000            #846行,取消注释群集超时时间设置

ここに画像の説明を挿入

redisノードを開始します

分别进入那六个文件夹,执行命令: redis-server redis.conf,来启动redis节点
cd /etc/redis/redis-cluster/redis6000
redis-server redis.conf
(或使用for循环来启动)
for i in {
    
    0..5}
do
cd /etc/redis/redis-cluster/redis600$i
redis-server redis.conf
done

ここに画像の説明を挿入
ここに画像の説明を挿入

ps -ef | grep redis

クラスターを開始します

redis-cli --cluster create 127.0.0.1:6000 127.0.0.1:6001 127.0.0.1:6002 127.0.0.1:6002 127.0.0.1:6003 127.0.0.1:6004 127.0.0.1:6005 --cluster-replicas 1

#6つのインスタンスは3つのグループに分けられ、各グループには1つのマスターと1つのスレーブがあり、前面がマスターノード、背面がスレーブノードです。次のインタラクションを作成するには、yesを入力する必要があります。
-レプリカ1は、各マスターノードに1つのスレーブノードがあることを意味します。

ここに画像の説明を挿入

redis-cli -p 6000 -c         #加-c参数,节点之间就可以互相跳转	
cluster slots			     #查看节点的哈希槽编号范围

ここに画像の説明を挿入
ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/weixin_51614581/article/details/114581884