Redis 宕机后,如何实现故障,快速自动恢复?
这篇文章,我们来看Redis是如何实现故障自动恢复的,它的实现正是要基于之前所讲的数据持久化和数据多副本而做的。
下面就来具体来看看Redis的故障恢复是如何做的,以及其中的原理。
部署模式
1、单节点部署:只有一个节点提供服务,读写均在此节点,此节点宕机则数据全部丢失,直接影响业务
注 意
文末有:3625页互联网大厂面试题
2、master-slave方式部署:两个节点组成master-slave模式,在master上写入,slave上读取,读写分离提高访问性能,master宕机后,需要手动把slave提升为master,业务影响程度取决于手动提升master的延迟
高可用做法
整个故障恢复的工作,正是Redis哨兵自动完成的。
哨兵介绍
工作原理
状态感知
心跳检测
选举哨兵领导者
选择新的master
提升新的master
客户端感知新master
一般来说,推荐采用第一种方式进行处理,很多客户端SDK中已经集成好了从哨兵节点获取最新master的方法,我们直接使用即可。
kaito-kidd.com/2020/07/02/redis-sentinel
总结
可见,为了保证Redis的高可用,哨兵节点要准确无误地判断故障的发生,并且快速的选出新的节点来代替其提供服务,这中间的流程还是比较复杂的。
中间涉及到了分布式共识、分布式协商等知识,目的都是为了保证故障切换的准确性。
我们有必要了解Redis高可用的工作原理,这样我们在使用Redis时能更准确地使用它。
阅读原文: 最新 3625页大厂面试题