第六章、Redis哨兵模式
学习哨兵模式前可以先了解下上章节主从复制
学习目标
哨兵简介
启用哨兵模式
哨兵工作原理
6.1、哨兵简介
- 思考如下问题:
关闭master和所有slave
关闭期间的数据服务谁来承接?
找一个从机slave作为主机master
找一个主机?怎么个找法?
修改其他从机slave的配置,连接新的主机master
修改配置后,原始的主机恢复了怎么办?
启动新的master与slave
全量复制N+部分复制N - 哨兵
哨兵(sentinel)是一个分布式系统,用于对主从结构中的每台服务器进行监控,当主机master出现故障时,哨兵模式通过投票机制从多台从机中选举出一个从机做主机master,并将所有从机slave连接到新的master。 - 哨兵的作用
监控
不断的检查master和slave是否正常运行。
master存活检测、master与slave运行情况检测
通知(提醒)
当被监控的服务器出现问题时,向其他(哨兵间,客户端)发送通知。
自动故障转移
断开master与slave连接,选取一个slave作为master,将其他slave连接到新的master,并告知客户端新的服务器地址
注意:
哨兵也是一台redis服务器,只是不提供数据服务 通常哨兵配置数量为单数
6.2、启动哨兵模式
- 首先要有哨兵配置文件
另外三台从机的哨兵服务器也同样配置,只需修改相应的端口号即可。 - 首先启动所有的主从机服务器,等待主从连接成功:
- 启动哨兵服务器的监控命令
redis-server.exe sentinel-哨兵端口号.conf --sentinel
- 打开DOS命令窗口,进入主机redis解压目录:
输入上述命令
一次启动三台从机的哨兵监控服务器:
同时在主机哨兵服务器中可以看到如下:
这时我们为了演示方便,使用RedisDesktopManager可视化工具,如下图所示:
输入命令
#查看当前服务器的连接状态
info replication
从机的连接状态:
6.2.1、演示主机宕机,哨兵模式及时哦从从机中推选出一个作为新主机master,同时并连接其他的从机,继续不间断的提供服务
- 我们将主机master端口号6379关闭,如下图:
- 再次通过上述查看连接状态的命令查看:
- 我们可以测试下从新主机6382中存入数据,查看在两个从机6380和6381中是否能够获取到: