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


相关推荐
QQ 31316378908 分钟前
文华财经软件指标公式期货买卖信号提示软件
java·前端·javascript
老华带你飞11 分钟前
房屋租赁管理系统|基于java+ vue房屋租赁管理系统(源码+数据库+文档)
java·开发语言·前端·数据库·vue.js·spring boot·后端
张彦峰ZYF11 分钟前
优化分布式系统性能:热key识别与实战解决方案
redis·分布式·性能优化
jqrbcts12 分钟前
关于发那科机器人如何时时把角度发给PLC
java·服务器·网络·人工智能
张彦峰ZYF20 分钟前
高并发场景下的大 Key 问题及应对策略
redis·分布式·缓存
liang_jy32 分钟前
Android 事件分发机制(一)—— 全流程源码解析
android·面试·源码
TheITSea32 分钟前
Java中的Optional:从入门到精通
java·开发语言
程序员侠客行37 分钟前
Mybatis入门到精通 一
java·架构·mybatis
糕......37 分钟前
Java异常处理完全指南:从概念到自定义异常
java·开发语言·网络·学习
小徐Chao努力38 分钟前
【Langchain4j-Java AI开发】04-AI 服务核心模式
java·人工智能·python