小编Shl*_*ton的帖子

Redis 集群实时重新分片失败

我们在生产环境中广泛使用 redis-cluster。我们目前有一个 30 节点的集群(15 个主节点,15 个从节点)我们正在尝试增加集群,为此我们已经创建了新的服务器并将它们加入到集群中。到目前为止一切都很好。

接下来 - 我们正在尝试将插槽重新分片给新的主人。我们使用redis-trib reshard命令编写了一个脚本来执行此操作。

但是 - 迁移中途失败(但离开始不是很远)并出现以下错误: [ERR] Calling MIGRATE: ERR Target instance replied with error: BUSYKEY Target key name already exists.

这种情况偶尔会发生,有时它会在失败之前设法移动一些插槽,有时它会在第一个插槽上失败。每个此类故障都需要手动修复操作,这使得重新分片操作非常难以管理。

除了停机迁移之外,我们还没有找到任何具体的例子,也没有任何关于如何防止这种情况的想法。我们正在努力避免。

版本:
redis server 4.0.2
redis trib 3.3.3(在此问题后从 4.0.2 降级:redis cluster reshard [ERR] Calling MIGRATE: ERR Syntax error)

我们的下一步是升级到最新的 redis (4.0.11),即使我们在此问题的发行说明中没有找到任何指示。

希望听到我们做错了什么以及如何修复它,或者 redis-cluster 不是为实时重新分片而构建的?

谢谢

redis redis-cluster

5
推荐指数
1
解决办法
1651
查看次数

标签 统计

redis ×1

redis-cluster ×1