redis哨兵
sentinel主要功能如下:
- 不时的监控redis是否良好运行,如果节点不可达就会对节点进行下线标识
- 如果被标识的是主节点,sentinel就会和其他的sentinel节点“协商”,如果其他节点也人为主节点不可达,就会选举一个sentinel节点来完成自动故障转义
- 在master-slave进行切换后,master_redis.conf、slave_redis.conf和sentinel.conf的内容都会发生改变,即master_redis.conf中会多一行slaveof的配置,sentinel.conf的监控目标会随之调换
3.2 redis sentinel配置步骤
3.2.1 配置三个redis数据库, 一主两从
redis-6380.conf
redis-6381.conf
redis-6382.conf
3.2.2 启动三个redis数据库,确保主从复制正常运行
redis-server redis-6380.conf
redis-server redis-6381.conf
redis-server redis-6382.conf
redis-cli -p 6380 info replication
redis-cli -p 6381 info replication
redis-cli -p 6382 info replication
3.2.3 配置三个哨兵
cd /opt/redis_conf
vim redis-sentinel-26380.conf
vim redis-sentinel-26381.conf
vim redis-sentinel-26382.conf
写入以下配置文件
port 26380
dir /data/26380
logfile "26380.log"
sentinel monitor qishimaster 127.0.0.1 6380 2 # 2表示需要几个哨兵同意选举
sentinel down-after-milliseconds qishimaster 60000
sentinel parallel-syncs qishimaster 1
sentinel failover-timeout qishimaster 180000
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/{26380,26381,26382}
如果发现哨兵没有正常启动,必须把IP改为127.0.0.1
如果你是在三个不同的机器上,只能用机器对外访问的IP,那就需要添加这一个配置
sentinel announce-ip 127.0.0.1
3.2.4 启动三个哨兵
[root@qishi666 redis_conf]# redis-sentinel redis-26380.conf
[root@qishi666 redis_conf]# redis-sentinel redis-26381.conf
[root@qishi666 redis_conf]# redis-sentinel redis-26382.conf
3.2.5 此时查看哨兵是否成功通信
3.2.6 如果出现问题,没有配置成功,没有显示前面这几条配置成功的信息,就推倒重来
如果出现问题,没有配置成功,没有显示前面这几条配置成功的信息,就推倒重来!!!!!!
如果出现问题,没有配置成功,没有显示前面这几条配置成功的信息,就推倒重来!!!!!!
从配置主从同步开始做!!!!!
3.2.7 验证redis高可用故障切换
大致思路
- 杀掉主节点的redis进程6379端口,观察从节点是否会进行新的master选举,进行切换
- 重新恢复旧的“master”节点,查看此时的redis身份
首先查看三个redis的进程状态
再把6380启动起来,查看他们的主从状态
-------------------------------------------
个性签名:代码过万,键盘敲烂!!!
如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!