【问题标题】:Assignment of slots to nodes method将槽分配给节点方法
【发布时间】:2018-07-30 09:39:54
【问题描述】:

我正在尝试修改我使用 redis-trib 的脚本。由于各种原因我现在不能使用它,但是我可以使用redis-CLI。

关键在于,在为节点分配槽时,是分块完成还是以某种方式完成?也就是说,如果有 3 个节点,我将 16384 个插槽分配给 3 个节点,并将剩余的分配给最后一个。或者我必须经过另一个过程。

非常感谢。


编辑:

我之所以问,是因为我正在查看一些非官方文档(我在官方文档中没有看到任何关于它的内容,但没有使用 redis-trib),其中显示了以下内容:

for slot in {0..5461}; do redis-cli -p 7000 CLUSTER ADDSLOTS $slot > /dev/null; done;
for slot in {5462..10923}; do redis-cli -p 7001 CLUSTER ADDSLOTS $slot > /dev/null;; done;
for slot in {10924..16383}; do redis-cli -p 7002 CLUSTER ADDSLOTS $slot > /dev/null;; done;

我不知道这个分布所依据的标准。

【问题讨论】:

  • 如果你可以使用 v5 中的 redis-cli,redis-trib 的功能已经包含(和改进)在其中。也许这比自己开发更容易。
  • 我无法更新版本。这是一张 RedHat 图片。

标签: redis redis-cli


【解决方案1】:

最后,我执行分配 16384 个插槽的任务,除以节点数。对于其余未分配的插槽,我计算模块并在可能的情况下在节点之间平均分配它们。

在任何情况下,我都会尝试每个节点的插槽数相同或非常相似,并且无论如何它们都是连续的插槽。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多