谈一谈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 天前
Redis 脑裂:原理、危害与解决方案
redis
難釋懷1 天前
Redis消息队列-基于Stream的消息队列-消费者组
数据库·redis·缓存
小杜的生信筆記1 天前
生信技能技巧小知识,Linux多线程压缩/解压工具
linux·数据库·redis
初次攀爬者1 天前
Redis脑裂问题处理——基于min-replicas-to-write配置
redis·后端
難釋懷1 天前
Redis消息队列-基于Stream的消息队列
数据库·redis·缓存
java1234_小锋1 天前
Java高频面试题:说说Redis的内存淘汰策略?
java·开发语言·redis
予枫的编程笔记1 天前
【Kafka进阶篇】Canal+Kafka+ES实战:内容平台数据同步难题,这样解最优雅
redis·mysql·elasticsearch·kafka·canal·数据同步·异步解耦
LSL666_1 天前
5 Redis通用命令
java·开发语言·redis·命令
rannn_1111 天前
【Redis|基础篇】初识、Redis的安装与启动、Redis命令、Java客户端
java·redis·后端·缓存·nosql
西门吹雪分身1 天前
SpringCloudGateway过滤器之RequestRateLimiterGatewayFilterFactory
java·redis·spring cloud