面试总结-Redis篇章(十)——Redis哨兵模式、集群脑裂

Redis哨兵模式、集群脑裂

哨兵模式

为了保证Redis的高可用,Redis提供了哨兵模式

哨兵的作用

服务状态监控

Redis集群(哨兵模式)脑裂

假设由于网络原因,主节点master和哨兵都处于不同的分区,哨兵只能检测从节点,就是下面这种情况,哨兵在右侧从节点中选出一个节点作为master。

但是老的mster还存在,还没有挂掉,这时候客户端写入数据依然是给旧的master写数据,这时候就是两个master,就像大脑分裂了一样。新的master是接收不到客户端传入的数据的。这时候如果网络回复了,如下图

这时候,哨兵会将旧的master强制降为slave,这时候slave会从新的master中去同步数据,会把自己的数据给清空,但是在之前的脑裂过程中,客户端写入的数据就丢失了,这就是脑裂问题出现后,导致数据丢失的问题。

解决办法

修改redis中两个配置参数

shell 复制代码
min-replicas-to-write 1  // 表示最少的salve 节点为1个
min-replicas-max-lag 5  // 表示数据复制和同步的延迟不能超过5秒

上述的意思是,master连接的salve最少为一个,而且数据复制和同步的延迟不能超过5秒,如果达不到这个要求,那么就拒绝客户端的请求,这样可以避免数据的丢失


相关推荐
聚美智数1 小时前
智能结构化识别-图片结构解析-图像结构化解析-照片结构化解析
android·java·数据库
十年Java程序媛1 小时前
Java枚举Enum完整教程|替代静态常量,开发与面试要点
java·开发语言·spring boot·后端·面试
我是人✓2 小时前
SpringBoot静态资源映射揭秘
java·spring boot·后端
土豆.exe2 小时前
nf_tables 的 verdict 被读了两次:一个十年未闭合的位域错配
java·数据库·网络安全·缓存
考研保研资料分享3 小时前
2022年马理论保研复盘:南师大原著题、首师大追问与上财选择
面试
小坏讲微服务3 小时前
刚发布一个月的JDK 27,为什么我建议你立刻升级?
java·开发语言·spring boot·spring·架构·求职招聘·springboot4
kunicoding3 小时前
多线程编程核心概念详解:从线程基础到并发安全
java·jvm·安全
考研保研资料分享4 小时前
2022编辑出版跨保西北大学中国史:五校面试与九月补材料
面试·职场和发展
snow@li4 小时前
SpringBoot:核心注解全景梳理 / @xxx 叫“注解”(Annotation)
java·spring
devilnumber4 小时前
避坑_IDEA 提取方法(Extract Method)工具
java·ide·intellij-idea