谈一谈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合理配置尽量规避,但无法彻底解决
相关推荐
钟智强1 天前
CVE-2025-49844高危预警:Redis Lua脚本引擎UAF漏洞深度剖析与POC实战
数据库·redis·web安全·junit·lua
java1234_小锋1 天前
Java高频面试题:怎么实现Redis的高可用?
java·开发语言·redis
崎岖Qiu1 天前
使用 Redis 的 List 实现缓存分页信息(模拟 limit offset 的 SQL 语句)
redis·mysql·缓存·list
崎岖Qiu1 天前
Redis Set 实战:基于「并、差、交集」的分布式场景应用
数据库·redis·分布式·后端
PD我是你的真爱粉1 天前
构建高可用的Redis 集群
数据库·redis·缓存
Drifter_yh2 天前
【黑马点评】Redisson 分布式锁核心原理剖析
java·数据库·redis·分布式·spring·缓存
鸽鸽程序猿2 天前
【Redis】zset 类型介绍
数据库·redis·缓存
z玉无心2 天前
Redis
数据库·redis·oracle
予枫的编程笔记2 天前
【Redis核心原理篇2】Redis 单线程模型:为什么单线程还能这么快?
数据库·redis·缓存