问题:
上面完成了redis的主从同步模式,但是未实现高可用
解决办法:
1. 配置sentinel
daemonize yes port 20000bind 0.0.0.0sentinel monitor redis-master 192.168.31.139 10000 1sentinel down-after-milliseconds redis-master 3000sentinel parallel-syncs redis-master 1sentinel failover-timeout redis-master 10000sentinel auth-pass redis-master 123456
其中
这个名称可以任意起,后面跟随主节点的IP和端口,最后一个值为多少个哨兵监测到主节点挂了才执行转移sentinel monitor
是指定一个名称给主节点,我这里指定为redis-master,
2. 启动sentinel
redis-sentinel sentinel.conf
成功启动后,我们可以查看相关信息:
redis-cli -p 20000
这里通过端口20000登录到sentinel上
执行以下命令:
infosentinel masterssentinel slaves redis-master
以上命令执行一下,看看出来的结果是什么
现在将主节点的redis杀掉:
ps aux | grep redis-serverkill 对应的pid
然后连接sentinel节点:
redis-cli -p 20000sentinel masters
这里发现主节点的地址变成了原来从节点的地址
这样就实现了高可用
现在在将杀掉的节点重启,通过sentinel查看:
sentinel slaves redis-master
可以看到原来的主节点启动后变成了从节点。
现在只有一个sentinel节点,可以按上面的步骤重复创建其它sentinel节点
这样就实现了多sentinel的监控, 一般的redis客户端都是支持同时配置多个sentinel地址的