一致性hash算法与hash槽

一致性hash算法是在redis 分片中使用,hash槽在redis cluster(集群)中使用

hash槽:
redis集群(cluster)并没有使用一致性hash算法,而是使用hash槽(slot)这个概念,
因为一致性hash算法对于数据的分布,节点位置的控制不是很好(在设计时应当尽可能的降低分散性)

hash槽是两个概念
redis 集群(cluster)的hash算法不是简单的hash算法,而是crc16算法,一种校验算法。

槽又是另一种概念,redis cluster包含了16384个hash槽,每个key通过计算后都会落在具体的一个槽位上而这个槽位属于哪个储存节点的由用户自己定义分配

一致性hash的空间定义成一个圆环,节点是基于圆环的,所以不能很好对的控制数据分布,因此,hash槽很好的解决了一致性hash的弊端

在容错性和扩展性上,与一致性hash算法一致,都是对受影响的数据进行转移。而哈希槽本质上是对槽位的转移,把故障节点负责的槽位转移到其他正常的节点上。扩展节点也是一样,把其他节点上的槽位转移到新的节点上。

但是对于槽位的转移和分派,redis 集群不会自动进行(redis分片中的一致性hash可以实现自动迁移——单调性),而需要

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值