谈一谈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合理配置尽量规避,但无法彻底解决
相关推荐
梦无矶2 小时前
快速设置uv默认源为国内镜像
数据库·redis·后端·python·uv
河阿里3 小时前
Redis:命令行基础语法与实战
数据库·redis·bootstrap
hERS EOUS5 小时前
Redis 下载与安装 教程 windows版
数据库·windows·redis
014-code5 小时前
Redis Stream:消息队列的进阶之路
数据库·redis·缓存
程序员萌萌5 小时前
基于 Redis 的分布式锁:原理剖析与 Spring Boot 实战(含看门狗续期)
spring boot·redis·分布式锁·看门狗机制
JoshRen6 小时前
Window下Redis的安装和部署详细图文教程(Redis的安装和可视化工具的使用)
数据库·redis·缓存
eRRA OFAG6 小时前
Redis 设置密码无效问题解决
数据库·redis·缓存
红星照耀华夏6 小时前
分布式锁深度解构:从 Redis 到 ZooKeeper,一场正确性与性能的博弈
redis·zookeeper·etcd·分布式锁
摇滚侠6 小时前
Java Map 类型的数据可以存储到 Redis Hash 类型中
java·redis·哈希算法
ALex_zry7 小时前
go-zero Redis缓存封装与Model层设计
redis·缓存·golang·气象