Redis集群:如何解决「节点有导入状态槽位、开放槽位5461」问题?
解决Redis集群开放槽位(5461)问题
从报错信息来看,槽位5461处于导入(importing)状态,属于未完成的槽位迁移残留问题,可通过以下两种方式解决:
方式一:手动完成槽位5461的迁移
适用于希望继续将该槽位迁移到新节点的场景:
- 登录源节点(192.168.56.111:6379),执行命令将槽位分配给目标节点:
redis-cli -h 192.168.56.111 -p 6379 CLUSTER SETSLOT 5461 NODE 0ddc62c0074565b95e6232cce975be8856a2a1de - 登录目标节点(192.168.56.113:6379),确认槽位归属:
redis-cli -h 192.168.56.113 -p 6379 CLUSTER SETSLOT 5461 NODE 0ddc62c0074565b95e6232cce975be8856a2a1de - 在任意集群节点执行检查命令,验证槽位状态正常:
redis-cli --cluster check 192.168.56.110:6379
方式二:取消未完成的迁移,恢复槽位到源节点
适用于放弃该槽位迁移,恢复原有集群状态的场景:
- 登录目标节点(192.168.56.113:6379),停止槽位导入:
redis-cli -h 192.168.56.113 -p 6379 CLUSTER SETSLOT 5461 IMPORTING STOP - 登录源节点(192.168.56.111:6379),停止槽位迁移:
redis-cli -h 192.168.56.111 -p 6379 CLUSTER SETSLOT 5461 MIGRATING STOP - 在任意集群节点执行命令,将槽位重新分配给源节点:
redis-cli --cluster setslot 192.168.56.110:6379 5461 NODE 1c2a770d0be92796889a3c6b8c5c333d744d18ec - 执行检查命令确认问题解决:
redis-cli --cluster check 192.168.56.110:6379
完成上述操作后,即可重新执行原有的reshard命令进行集群分片。
内容的提问来源于stack exchange,提问作者Behnia FB
相关产品推荐
相关产品推荐

