这篇文章接我之前文章主从模式基础上修改的https://blog.youkuaiyun.com/qq_40297844/article/details/108290873
环境
三台虚拟机:
ip:192.168.5.151:6379(主节点)
ip:192.168.5.191:6379(从节点)
ip:192.168.5.192:6379(从节点)
引入
主从切换技术的方法是:当主服务器宕机后,需要手动把一台从服务器切换为主服务器,这就需要人工干预,费事费力,还会造成一段时间内服务不可用。这不是一种推荐的方式,更多时候,我们优先考虑哨兵模式。
什么是哨兵模式
Sentine(哨兵)是用于监控Redis集群中Master状态的工具,是Redis高可用解决方案,哨兵可以监视一个或者多个redis master服务,以及这些master服务的所有从服务;当某个master服务宕机后,会把这个master下的某个从服务升级为master来替代已宕机的master继续工作。
配置哨兵监控
基础配置
port 26379
pidfile "/usr/local/redis/sentinel/redis-sentinel.pid"
dir " /usr/local/redis/sentinel"
daemonize yes
protected-mode no
logfile "/usr/local/redis/sentinel/redis-sentinel.log"
核心配置
# 配置哨兵
sentinel monitor mymaster 127.0.0.1 6379 2
# 密码
sentinel auth-pass <master-name> <password>
# master被sentinel认定为失效的间隔时间
sentinel down-after-milliseconds mymaster 30000
# 剩余的slaves重新和新的master做同步的并行个数
sentinel parallel-syncs mymaster 1
# 主备切换的超时时间,哨兵要去做故障转移,这个时候哨兵也是一个进程,如果他没有去执行,超过这个时间后,会由其他的哨兵来处理
sentinel failover-timeout mymaster 180000
以上三台虚拟机都需配置(一主二重)
启动哨兵x 3
redis-sentinel sentinel.conf
查看是否启动
ps -ef|grep redis
以上三台节点查看都是这样那么就说明配置成功了
测试
1.master挂了,看slave是否成为master
2.master恢复,观察slave状态
/etc/init.d/redis_init_script stop //停掉Master节点 ip:192.168.5.151:6379(主节点)
然后查看两台从节点的redis客户端 redis-cli里面使用info replication查看是否有一台从节点从slave变成Master