redis 修复 Slot 10923 is importing

今天同事突然说redis连不上了,先检查集群和节点状态:

  • 登录一个节点,检查集群状态:
./bin/redis-cli -c -h 192.168.20.133 -p 6380
cluster info

结果显示集群状态为fail

  • 登录所有节点:
./bin/redis-cli -c -h 192.168.20.133 -p 6380

执行命令:

cluster slots

有一个节点结果显示和其他节点不一样,少了两个节点的槽信息:
在这里插入图片描述
正确节点的槽信息:
在这里插入图片描述

  • 在这个出问题节点上,执行设置key的命令
set name xxx

结果显示报错:(error) CLUSTERDOWN The cluster is down

  • 在错误节点上执行节点检查命令:
./bin/redis-cli --cluster check 192.168.20.133 6379

结果显示有5000多个槽正在 importing,于是猜测可能是这些槽导入状态有问题没法复位导致节点异常:
于是创建一个txt文件setSlot.txt ,内容为5000个槽的导入状态清除命令:

CLUSTER SETSLOT 10923 STABLE
CLUSTER SETSLOT 10924 STABLE
CLUSTER SETSLOT 10925 STABLE
CLUSTER SETSLOT 10926 STABLE
CLUSTER SETSLOT 10927 STABLE
CLUSTER SETSLOT 10928 STABLE
CLUSTER SETSLOT 10929 STABLE
CLUSTER SETSLOT 10930 STABLE
...

然后执行命令:

cat setSlot.txt |./bin/redis-cli -h 192.168.20.133 -p 6379
  • 修复槽状态完毕后,查询集群状态,已经显示正常;再执行一个set命令,也正常,问题修复完毕。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值