前言
大家好,我是田螺。
分享一道大厂面试真题:说说redis主从的脑裂?
我们可以按照这几个维度来回答:
1. 什么是脑裂
什么是脑裂行为?
2. 主从集群中为什么会发生脑裂?
脑裂行为在Redis主从集群中可能发生的原因,主要包括以下几点:
3. 脑裂为什么又会导致数据丢失呢?
Redis的主从切换后,一旦从库被提升为新的主库,哨兵会指示原主库去执行主从复制命令,以便与新主库进行全量同步数据。最后在全量同步的阶段的话,原主库需要清除本地数据,加载来自新主库的RDB文件(我们知道,redis主从同步是基于rdb文件的)。这就会导致在主从切换期间,原主库接收的新写数据会丢失啦。
还是上个简单的图,方便大家理解吧:
上图,大家可以发现:
4. 我们该如何避免/应对脑裂的发生呢?
为了避免脑裂的发生,我们尝试这些方法:
还有个比较推荐的方式,那就是min-slaves-to-write 和 min-slaves-max-lag 这两个参数,可以有效减少 Redis 脑裂的风险
本网站的文章部分内容可能来源于网络和网友发布,仅供大家学习与参考,如有侵权,请联系站长进行删除处理,不代表本网站立场,转载者并注明出处:https://jmbhsh.com/zixun/34393.html