Redis系列之哨兵模式

>>2020,微服务装逼指南

Redis系列之哨兵模式


前言

上节我们介绍了Redis的主从,我们知道主从可以实现写主读从,我们也介绍了,手动实现主从切换,今天我们就来看看Redis的哨兵模式,通过哨兵我们就能实现redis的自动主从切换。

Redis系列之哨兵模式

什么是Redis的哨兵?

哨兵顾名思义,相当于一个站岗放哨的士兵,他能监测主服务器和从服务器的状态,当主服务器宕机时,他会从该主对应的从服务器列表中,通过投票选举机制完成新主服务器的选举工作,当新的主服务器产生之后,之前的从服务器就重新认主,相当于找到了新的老大,然后之前宕机的主服务器恢复启动之后,也会被归为新主服务器的从服务器。

Redis系列之哨兵模式

哨兵的功能:

  • 监控主数据库和从库是否正常运行

  • 主数据库出现故障时,可以自动将从数据库转换为主数据库,实现自动切换

Redis系列之哨兵模式

如何实现哨兵?

环境准备:一主:6379     三从: 6377 6378 6376

Redis配置这里就不说了,主从的配置上节已经介绍过了,这里我们直接看哨兵如何配置?

原则是我们是一台机器配置一台哨兵就可以的,生产中,我们一般会配置多个哨兵组成哨兵集群,提高高可用性。我们来看下面哨兵的配置文件主要配置些什么:

Redis系列之哨兵模式一般就是Redis端口号加20000

Redis系列之哨兵模式

这里我们配置的选举票数是1,因为在这里我只启动了一个哨兵,所以只能配置1票,因为选举是哨兵完成的,所以票数一般根据哨兵数量来合理配置(大于参加选举的哨兵数除以2),如果主服务器配置了密码验证,哨兵这里也是需要配置验证密码的。


每个机器配置一份就可以了,然后依次启动每个redis,然后再启动哨兵,我们来看下哨兵启动之后的日志:

Redis系列之哨兵模式

我们看下主服务器的信息:

Redis系列之哨兵模式

OK,至此我们主从和哨兵都起来了,那么我们就来验证下主从切换的效果吧,接下来我将把主服务器宕机掉,我们看看哨兵会发生什么?

6379宕机:

Redis系列之哨兵模式

6376、6377、6378都连不上主服务器了:

Redis系列之哨兵模式

然后看哨兵这边的日志:重新选举了6376为新的主master

Redis系列之哨兵模式

然后之前的6377和6378重新连接新的主服务器并进行同步:

Redis系列之哨兵模式

我们看下6377的信息:

Redis系列之哨兵模式

再看下6376的信息:

Redis系列之哨兵模式

我们再去看下哨兵的配置文件,会发现哨兵配置文件发生了改变:

Redis系列之哨兵模式

Redis系列之哨兵模式

OK,接下来上面我们就完成了主从切换,现在还有一个问题,就是之前的宕机的主,现在怎么办?我们来将宕机的6379恢复启动:重新恢复启动之后我们看到6379主动去连接6376并同步

Redis系列之哨兵模式

再看下哨兵和新的主服务器6376:

Redis系列之哨兵模式

Redis系列之哨兵模式


所以呢?之前宕机的主就合理的成为了新主master的小弟了。至此Redis的哨兵我们就讲完了,有了主从和哨兵,其实Redis已经能适应一般中小型项目了,但是对于大型项目还是要用我们后面要讲的集群,关于集群,下节我们再来介绍,今天就到这了,感谢关注,感谢阅读!!!


相关文章:

Redis系列之主从复制

Redis系列之哨兵模式


原文始发于微信公众号(Justin的后端书架):Redis系列之哨兵模式