[ERR] Not all 16384 slots are covered by nodes.

本文介绍了Redis集群环境中出现的故障现象,包括部分slot数据分片丢失及集群状态检查错误。详细阐述了如何使用redis-trib.rb工具进行集群检查、修复及重新分配slot的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

早些时间公司redis集群环境的某台机子冗机了,同时还导致了部分slot数据分片丢失;

在用check检查集群运行状态时,遇到错误;

[root@node01 src]# ./redis-trib.rb check172.168.63.202:7000


Connecting to node 172.168.63.202:7000: OK

Connecting to node 172.168.63.203:7000: OK

Connecting to node 172.168.63.201:7000: OK

>>> Performing Cluster Check(using node 172.168.63.202:7000)

M: 449de2d2a4b799ceb858501b5b78ab91504c72e0172.168.63.202:7000

  slots: (0 slots) master

   0additional replica(s)

M: db9d26b1d15889ad2950382f4f32639606f9a94b172.168.63.203:7000

  slots: (0 slots) master

   0additional replica(s)

M: f90924f71308eb434038fc8a5f481d3661324792172.168.63.201:7000

  slots: (0 slots) master

   0additional replica(s)

[OK] All nodes agree about slotsconfiguration.

>>> Check for open slots...

>>> Check slots coverage...

[ERR] Not all 16384 slots are covered by nodes.


原因:

这个往往是由于主node移除了,但是并没有移除node上面的slot,从而导致了slot总数没有达到16384,其实也就是slots分布不正确。以在删除节点的时候一定要注意删除的是否是Master主节点。

1)、官方是推荐使用redis-trib.rb fix 来修复集群…. ….  通过cluster nodes看到7001这个节点被干掉了… 那么

[root@node01 src]#  ./redis-trib.rb fix 172.168.63.201:7001


修复完成后再用check命令检查下是否正确

[root@node01 src]# ./redis-trib.rb check172.168.63.202:7000

只要输入任意集群中节点即可,会自动检查所有相关节点。可以查看相应的输出看下是否是每个Master都有了slots,如果分布不均匀那可以使用下面的方式重新分配slot:

[root@node01 src]#  ./redis-trib.rb reshard 172.168.63.201:7001




root@localhost:/data# redis-cli --cluster check 192.168.23.128:6381 192.168.23.128:6381 (5179e77c...) -> 1 keys | 5461 slots | 1 slaves. 192.168.23.128:6387 (2d3627a0...) -> 0 keys | 0 slots | 0 slaves. 192.168.23.128:6383 (717e40d4...) -> 1 keys | 5462 slots | 1 slaves. 192.168.23.128:6382 (914842ad...) -> 0 keys | 5461 slots | 1 slaves. [OK] 2 keys in 4 masters. 0.00 keys per slot on average. >>> Performing Cluster Check (using node 192.168.23.128:6381) M: 5179e77cd2af6a3237ab7066ec2663675d249b91 192.168.23.128:6381 slots:[0-5460] (5461 slots) master 1 additional replica(s) S: dc23983813d9995faaced72ef7a040a4f9def34c 192.168.23.128:6385 slots: (0 slots) slave replicates 5179e77cd2af6a3237ab7066ec2663675d249b91 M: 2d3627a079ca35457dbaf67bdf3db9dde1b57d45 192.168.23.128:6387 slots: (0 slots) master M: 717e40d46660a54c7c717447c3906ec79f13c482 192.168.23.128:6383 slots:[5461-6826],[12288-16383] (5462 slots) master 1 additional replica(s) M: 914842add6cb3726d9eeb018e7070b54fe8dae12 192.168.23.128:6382 slots:[6827-12287] (5461 slots) master 1 additional replica(s) S: b64fa925e9ceedffe7f767fe8ee41abc7b07a828 192.168.23.128:6384 slots: (0 slots) slave replicates 717e40d46660a54c7c717447c3906ec79f13c482 S: bb84473578437766401f5c46895a0d6fa04bb7e8 192.168.23.128:6386 slots: (0 slots) slave replicates 914842add6cb3726d9eeb018e7070b54fe8dae12 [ERR] Nodes don't agree about configuration! >>> Check for open slots... >>> Check slots coverage... [OK] All 16384 slots covered. 这个有错误吗
03-25
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值