Redis集群出现JedisMovedDataException异常求助
解决JedisMovedDataException的实用思路
错误本质
JedisMovedDataException: MOVED 12867 127.0.0.1:7002 是因为当前连接的Redis节点不负责槽位12867,需要客户端重定向到7002节点,但你的Jedis客户端没启用集群模式,无法自动处理这个重定向逻辑。
排查修复步骤
- 检查客户端实现:确认代码里用的是
JedisCluster而非普通Jedis实例。普通Jedis是单节点客户端,不会处理集群的槽位重定向;正确姿势是初始化包含集群节点列表的Set<HostAndPort>,再创建JedisCluster对象。 - 验证集群槽位分配:在任意集群节点执行
CLUSTER SLOTS命令,确认槽12867确实被分配到127.0.0.1:7002;再用CLUSTER NODES检查该节点状态是否为connected,排除节点失联但集群状态显示正常的情况。 - 排查客户端配置:如果已经用了
JedisCluster,检查是否有自定义配置禁用了自动重定向,或者拦截器干扰了正常的MOVED响应处理。 - 网络连通性检查:确保客户端能访问7002节点,同时集群节点间的通信端口(基础端口+10000,即17002)也要能正常互通——集群内部依赖这个端口同步槽位和节点状态。
- 临时调试验证:手动连接到127.0.0.1:7002,执行对应命令,确认该节点持有槽12867的数据,排除槽位分配异常的问题。
内容的提问来源于stack exchange,提问作者Adam
相关产品推荐
相关产品推荐

