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


相关推荐
鸡蛋豆腐仙子9 分钟前
redis及实现分布式锁的原理
java·redis·分布式·学习·缓存
好家伙VCC11 分钟前
# 发散创新:基于Solidity的DeFi协议设计与实现——从原理到实战代码解析在区块链世界中,**DeFi(去中心化金
java·python·去中心化·区块链
H Corey12 分钟前
Java字符串操作全解析
java·开发语言·学习·intellij-idea
Aric_Jones13 分钟前
博客音乐播放器实现全解析
java·运维·数据库·人工智能·docker·容器·eclipse
2501_9419820517 分钟前
Python开发:实现企微外部群消息关键词监控
java·服务器·数据库
brucelee18619 分钟前
Java 开发AWS Lambda 实战指南(SAM CLI + IntelliJ)
java·开发语言
码云数智-大飞19 分钟前
Nginx负载均衡四大核心算法深度解析:原理、配置与选型实战
java
消失的旧时光-194320 分钟前
第二十一课:系统是怎么一步步拆坏的?——单体到模块化实践(完整工程版)
java·spring boot·后端·架构
Coder_Boy_31 分钟前
Java高级_资深_架构岗 核心知识点(云原生)
java·云原生·架构
Coder_Boy_35 分钟前
Java高级_资深_架构岗 核心面试知识点(AI整合+混合部署)
java·人工智能·spring boot·后端·面试·架构