redis cluster的hash slot算法

redis cluster的hash算法简介:

redis cluster中的哈希算法是用来判断用户上传的一个key,value应该保存在哪一个节点之中(集群模式redis有多台主节点,每台主节点对应一台或多台备节点),下面先说一下redis cluster中哈希算法的规则:

之所以成为hash slot算法是因为redis cluster中有固定的16384个hash slot,这16384个slot会均匀分配到各个master上面,通过这种模式,想要判断一个key,value想要存到那一台主机上,只需要算出这个key对应的slot是哪一个,集群模式redis中的master存有自己所有的slot信息,除此还会保存其他master和其他master所有的slot信息。

hash算法:

HASH_SLOT=CRC16(key) mod 16384

对每个key值计算CRC16值,然后对16384取模,这样来获取key对应的hash slot。

向master写入数据流程:

客户端向节点发送键命令,然后这个节点通过hash算法获得这个键值属于哪一个slot,然后判断这个slot是否属于自己负责的slot,如果是自己负责的话,自己就直接执行写入操作,若果不是自己负责的话,就向客户端返回一个moved错误,让客户端选择正确的节点。

 

cluster keyslot mykey,可以查看一个key对应的hash slot是什么。

利用hash 可以手动指定key对应的slot,同一个hash tag下的key,都会在同一个hash slot中,例如,set mykey1:{100}和set mykey2{100}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值