不完美的主从复制
上一章中简单了实现了一个主从复制使的Redis实现了读写分离。通过实现主从复制使得数据安全有了保障,且读写分离提高了Redis的整体性能。但是Redis并不能完美解决主服务宕机后,整体服务的不可用。
上一章的例子中,假如主服务宕机后,我们需要手动把一台从服务器切换成主服务,这个动作全程需要人工干预。
中间可能发生操作失误,且在操作过程中会导致一段时间内服务不可用。为了解决上面的问题,我们需要引入一套自动化的解决方案,那就是哨兵机制。
哨兵模式
哨兵模式是Redis针对上述问题,提供的一套自动化解决方案的模式。其具体原理是配置哨兵通过命令从而监控多个Redis实例。通过命令请求,实时获取Redis服务其运行状态,以及其主从服务器的拓扑关系。当哨兵确认主服务宕机会根据选举将某个从服务切换成主服务,然后通过发布订阅模式通知其他从服务,修改配置,切换主机。
整个关系可以用下面的图描述