面试总结-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秒,如果达不到这个要求,那么就拒绝客户端的请求,这样可以避免数据的丢失


相关推荐
AD钙奶-lalala5 分钟前
SpringBoot 4.0.3配置Swagger
java·spring boot·后端
seven97_top8 分钟前
NIO:解开非阻塞I/O高并发编程的秘密
java
小六溜了8 分钟前
模块二十.双列集合
java
23.9 分钟前
【Java】NIO 中的多路复用(Selector / Channel)机制
java·面试·nio
七夜zippoe13 分钟前
Docker容器化实战:核心概念、镜像制作与多阶段构建全解析
java·jvm·数据库·docker·oracle·容器化
TimberWill16 分钟前
优化if else过多的方案(含设计模式处理方式)
java·设计模式
东离与糖宝20 分钟前
GraalVM+Project Leyden实战:Spring Boot应用原生编译,Serverless冷启动自由
java·人工智能
今天你TLE了吗42 分钟前
JVM学习笔记:第七章——对象实例化、内存布局&访问定位
java·jvm·笔记·学习
w_t_y_y43 分钟前
知识体系——MCP(三)io.modelcontextprotocol.sdk(1)开发mcp server
java
亚马逊云开发者44 分钟前
人人都能写 OpenClaw Skill!手把手带你做一个自动日报技能
java