前言
本章讲解Redis的哨兵模式
方法
1.概念
有了主从复制的概念后,我们实现了读写分离。但是一旦主机master宕机,那么后果是十分严重的。
为了防止上面情况的发生,redis引入了哨兵的概念,用来监控主从机器的运行情况,在主机宕机时及时选举出新的主机。
2.准备工作
我们需要提前将redis下的sentinel.conf拷贝到我们的etc目录下
注意:由于博主在写这篇博客之前已经验证过哨兵了。所以之前的主从复制中主机更换为105,从机为103以及104
3.配置哨兵
你可以任选一个服务器(主、从)进行哨兵的配置比如103
打开sentinel.conf进行配置:
1)设置哨兵需要监听的主机master的ip等信息
更改两个地方,一个是主机的ip地址,一个是最低投票通过数,因为我们只配置了一个哨兵,所以设置一票通过。
2)启动一主两从服务器
注意:启动哨兵服务器之前请确保主从已经启动,否则无法监控
查看105的信息可以发现,从机103,104已经顺利的挂载。
3)启动部署在103的哨兵服务器
./redis-sentinel ../etc/sentinel.conf
观察哨兵日志:
这说明主机和两个从机都已经被检测到了。
4.测试哨兵
我们将尝试将主机master(105)进行shutdown,测试哨兵功能
103、104的状态:
可以看出,我们的主机已经是down的状态,也就是宕机。
过了一段时间观察哨兵日志,我们发现如下操作:
上述情况说明我们的105主机已经挂掉了,通过投票选举了103从机升级为新的主机。
此时我们在观察104从机的信息情况:
我们发现,104从机已经挂载到了103主机中。
我们再来看一下原来的从机103的情况:
不难发现,我们的103从机已经升级到了主机。并且挂载了之前和他一样是从机的104
我们知道,105已经被我们强制的宕机了,那么重新启动它会不会造成两台主机冲突呢?
我们尝试重新启动宕机的105:
首先观察105机器的信息:
我们发现,他已经由原来的主机降级为从机了。
这是因为哨兵自动的将其转换了:
再次去查看主机103的信息:
我们发现,其成功的成为主机并且挂载了两个从机,实现了容灾处置。