谈一谈redis脑裂

什么是redis脑裂

(1)一主多从架构中,主节点与客户端通信正常,主节点与哨兵、从节点连接异常,客户端仍正常写入数据

(2)哨兵判定主节点下线,重新选主

(3)原主节点与哨兵和其他节点通信恢复,成为新主节点的从节点,drop本身所有的数据,从新主节点全量copy数据

(4)原主节点通信异常至新主节点出现期间客户端写入的数据丢失

这就是脑裂

如何应对脑裂现象

在原主节点通信异常至新主节点选举出现期间,拒绝客户端的数据写入

redis提供了两个配置项

  • min-slaves-to-write:与主节点通信的从节点数量必须大于等于该值主节点,否则主节点拒绝写入
  • min-slaves-max-lag:主节点与从节点通信的ACK消息延迟必须小于该值,否则主节点拒绝写入。
    Redis脑裂可以采用min-slaves-to-write和min-slaves-max-lag合理配置尽量规避,但无法彻底解决
相关推荐
Gh0st_Lx27 分钟前
【9】面试官:讲一下MySQL 和 Redis 的缓存一致性问题
redis·mysql·缓存
2401_878820472 小时前
Redis+Lua脚本实现全局令牌桶限流
数据库·redis·lua
身如柳絮随风扬3 小时前
Redis 主从复制与哨兵机制详解:从原理到高可用实战
数据库·redis·缓存
Plastic garden4 小时前
Redis(2) redis的高可用
java·数据库·redis
CAE虚拟与现实5 小时前
重置系统后,Postgresql不用重装
数据库·redis·postgresql·kafka
java1234_小锋5 小时前
Redis 支持哪些数据类型?请分别说明它们的使用场景
java·数据库·redis
半夜修仙7 小时前
Redis中String数据类型的常见命令
数据库·redis·缓存
LB21127 小时前
消灭并发重复调用:基于 Agent 调用 LLM 的分布式 Single-Flight 实战
java·开发语言·redis·分布式·agent
JAVA社区7 小时前
Java进阶全套教程(七)—— Redis超详细实战详解
java·linux·开发语言·redis·面试·职场和发展
小碗羊肉9 小时前
【Redis | 第三篇】缓存(Cache)
数据库·redis·缓存