谈一谈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合理配置尽量规避,但无法彻底解决
相关推荐
longlong int2 小时前
【每日算法】Day 16-1:跳表(Skip List)——Redis有序集合的核心实现原理(C++手写实现)
数据库·c++·redis·算法·缓存
努力努力再努力wz2 小时前
【c++深入系列】:类与对象详解(中)
java·c语言·开发语言·c++·redis
西元.4 小时前
详解 Redis repl_backlog_buffer(如何判断增量同步)
数据库·redis·缓存
Kale又菜又爱玩10 小时前
深入探索Redisson:用法全解析及在微服务中的关键应用
redis·微服务·架构
LUCIAZZZ10 小时前
Redisson中BitMap位图的基本操作
java·spring boot·redis·spring
SimonKing11 小时前
3ms找出微信「共同好友」,揭秘其背后的技术推手
java·redis·后端
纪元A梦12 小时前
Redis最佳实践——用户会话管理详解
数据库·redis·缓存
码熔burning13 小时前
Redis 线程模型:单线程也能快如闪电?
数据库·redis·缓存
树下一少年13 小时前
通过ansible+docker-compose快速安装一主两从redis+三sentinel
redis·docker·ansible·sentinel·docker-compose
刘量包14 小时前
redis安装(单机/集群)
redis