Redis-master节点的散列插槽

        问题引入:在搭建了redis的分片集群后,我们会面对这样一个问题,当我们写数据时,比如set num 666,这个num值将会存在哪个master上呢?当要get的时候我们又怎么查询呢?

        这里我们需要先了解一个概念:key的有效部分。假设一个key是{abc}def,那么这个key的有效部分就是abc。

Redis会把每一个master节点映射到0-16383一共16384个插槽(hash slot)上,(假如是三个master节点,那么这16384个插槽就平均分给这三个master)数据key与这些插槽绑定起来,如何进行映射就是用到刚才说到的key的有效部分,根据CRC16算法得到这个key的hash值,用这个hash值对16384取余,得到slot值,就对应某个某个插槽。

如果你想将同一类数据存放在同一个master中,那就可以让他们的key有相同的有效部分

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Superzl1002

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值