【问题标题】:How can I ensure that a set of keys are evenly distributed across Redis cluster nodes?如何确保一组键均匀分布在 Redis 集群节点上?
【发布时间】:2021-11-02 07:26:12
【问题描述】:

我有一个支持大量排序集的 Redis 集群。这些排序的集合以非常高的频率运行;集群中单个节点只能合理支持两组。

例如,如果我有 2 个节点和 3 个集合,我不能容忍将所有 3 个集合分配给由单个节点提供服务的哈希槽。

有什么方法可以合理地确保这些密钥将均匀分布在集群中的节点上?

【问题讨论】:

    标签: redis redis-cluster


    【解决方案1】:

    我相信没有办法确保开箱即用。

    如果你用谷歌搜索redis hotkeys,你可以找到一些解释问题的文献。通常他们提供的“解决方案”不是使用大集合,但在某些情况下可能不是有效的答案。

    Redis 提供了将插槽从一个分片移动到另一个分片的命令。但如果大键分配到同一个槽,问题依然存在。

    但也许你可以玩heys-hash-tags。这是redis提供的一个选项,用于确保在同一个slot中分配一些key。您可以使用这种方法来获得相反的结果,确保某些键没有分配在同一个插槽中。

    如果键包含{...} 模式,则仅将键名的那部分传递给分配分片的哈希函数。您可以尝试重命名您的键并添加例如bigset:1{1}bigset:2{2}bigset:3{3} 并找到一种模式,使每个键分配到不同的插槽。

    【讨论】:

      猜你喜欢
      • 2021-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-02
      相关资源
      最近更新 更多