标签:seconds 数据库 领导者 scripts redis 从服务器 ima 原来 protect
1 配置三个redis数据库, 一主两从redis-6380.conf #主
redis-6381conf #从
redis-6382.conf #从
写下以下配置文件
vim redis-6380.conf
port 6380
daemonize yes
pidfile /data/6380/redis.pid
loglevel notice
logfile "/data/6380/redis.log"
dbfilename dump.rdb
dir /data/6380
protected-mode no
再创建两个配置文件6381和6382
sed "s/6380/6381/g" redis-6380.conf > redis-6381.conf
sed "s/6380/6382/g" redis-6380.conf > redis-6382.conf
创建数据文件目录
mkdir -p /data/{6380,6381,6382}
给两个从服务器配置文件再添加一行配置
在6381和6382配置文件添加这一行配置,表示指定主服务器为6380
slaveof 127.0.0.1 6380
2 启动三个redis数据库, 确保主从复制正常运行
redis-server redis-6380.conf
redis-server redis-6381.conf
redis-server redis-6382.conf
3 配置三个哨兵
cd /opt/redis/
vim redis-sentinel-16380.conf
vim redis-sentinel-16381.conf
vim redis-sentinel-16382.conf
写入以下配置文件
port 16381
dir "/data/16381"
logfile "16381.log"
sentinel myid 3cf63a8e47b2372667013f8cdee7a3a5130d41fc
sentinel deny-scripts-reconfig yes
sentinel monitor qishimaster 127.0.0.1 6381 2
sentinel down-after-milliseconds qishimaster 60000
daemonize yes
哨兵配置文件详解(不在步骤里面):
Sentinel节点的端口
port 26379
dir /var/redis/data/
logfile "26379.log"
sentinel announce-ip 127.0.0.1 # 宣告哨兵IP, 此配置只有当使用非127.0.0.1的IP配置哨兵无法成功时加上,同时redis三个服务端也需要同步修改IP
当前Sentinel节点监控 127.0.0.1:6379 这个主节点
2代表判断主节点失败至少需要2个Sentinel节点节点同意
mymaster是主节点的别名
sentinel monitor mymaster 127.0.0.1 6379 2
每个Sentinel节点都要定期PING命令来判断Redis数据节点和其余Sentinel节点是否可达,如果超过30000毫秒30s且没有回复,则判定不可达
sentinel down-after-milliseconds mymaster 30000
当Sentinel节点集合对主节点故障判定达成一致时,Sentinel领导者节点会做故障转移操作,选出新的主节点,原来的从节点会向新的主节点发起复制操作,限制每次向新的主节点发起复制操作的从节点个数为1
sentinel parallel-syncs mymaster 1
故障转移超时时间为180000毫秒
sentinel failover-timeout mymaster 180000
daemonize yes
创建存放哨兵文件的目录
mkdir -p /data/{16380,16381,16382}
启动三个哨兵
redis-sentinel redis-sentinel-16380.conf
redis-sentinel redis-sentinel-16381.conf
redis-sentinel redis-sentinel-16382.conf
查看哨兵是否成功通信
redis-cli -p 16380 info sentinel
标签:seconds 数据库 领导者 scripts redis 从服务器 ima 原来 protect
原文地址:https://blog.51cto.com/liuxiaolan/2450447