redis集群中的哈希槽是什么意思?

时间:2018-01-18 05:21:09

标签: redis

我已阅读过redis-cluster文档,但无法获得它的要点。有人可以帮助我从基础知识中理解它吗?

  

Redis Cluster不使用一致的散列,而是使用不同的形式   分割每个键在概念上是我们称之为散列的一部分   槽。

3 个答案:

答案 0 :(得分:1)

您可以将插槽视为字面意思,就像现实世界中的插槽一样。

每个键都属于某个规则的某个槽。并且插槽也属于某个redis节点的配置。

答案 1 :(得分:1)

哈希槽由Redis定义,因此可以将数据映射到Redis集群中的不同节点。插槽数(16384)可以划分并分配到不同的节点。

例如,在3个节点的群集中,一个节点可以容纳插槽0到5640,下一个5461到10922和第三个10923到16383。对输入键或输入键的一部分进行散列(针对散列函数)以确定插槽号,因此是要将密钥添加到的节点。

答案 2 :(得分:0)

将其视为逻辑碎片。因此redis有16384个逻辑分片,这些逻辑分片被映射到集群中的可用物理机。

映射可能类似于:

     0-1000 : Machine 1
  1000-2000 : Machine 2
  2000-3000 : Machine 3
           ...
           ...

redis获取密钥后,它将执行以下操作:

  1. 计算hash(key)%16384->这将找到给定密钥所属的逻辑碎片,假设它等于1500
  2. 查看逻辑分片到物理机的映射以标识物理机。根据上面的映射,逻辑碎片1500由机器3提供服务​​。因此,将请求路由到物理机器2。