vlambda博客
学习文章列表

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页大厂面试题