rediscluster Redis nodes don’t agree about configuration ?

本文详细解析了RedisCluster中配置不一致的问题,通过源代码分析定位到具体原因,并提供了有效的解决方案,包括如何检查和修正节点间配置差异。
背景

前两天Redis cluster 集群节点宿主机故障,等故障主机恢复后,我启动实例重新加入集群后,因为业务服务器配置的原因,新加入节点连接数瞬间被打满,几番重启后,发现在执行redis-cli --cluster check时,集群出现nodes don’t agree about configuration 。字面意思是有节点保存的集群状态不一致。但具体是什么不一致,百度一番还是有点一头雾水。

源代码分析

由于是使用的5.0.7版本的redis-cli 做的集群管理。不方方便查看源代码,想到低版本的redis-trib.rb 这个ruby脚本逻辑和5.0.7 的redis-cli 几乎一致。于是从redis-trib.rb 查看源代码,首先检索关键字 don’t agree about configuration :

632     def check_config_consistency
 633         if !is_config_consistent?
 634             cluster_error "[ERR] Nodes don't agree about configuration!"
 635         else
 636             xputs "[OK] All nodes agree about slots configuration."
 637         end
 638     end
 639 
 640     def is_config_consistent?
 641         signatures=[]
 642         @nodes.each{|n|
 643             signatures << n.get_config_signature
 644         }
 645         return signatures.uniq.length == 1
 646     end

发现主

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值