一致性哈希

        当我们用普通的哈希算法时,如图,下列有四个桶,那么就是哈希值%4得出在哪个桶里存放数据。

         但是,当我们的桶装满时,就得增加桶的数量了,当桶数增加到5时,这时的算法就变成了哈希值%5,但是呢,之前是哈希值%4,现在哈希值%5了,假设之前53249%4=2了,现在53249%5=3了,那么就出问题了,之前桶里的所有数据就得重新分布了,得把所有数据拿出来再%5再放回去,那么开销就变得巨大了。

         为了解决此问题,就提出了一致性哈希。一致性哈希相对于普通哈希来说,当增加一个节点的时候,只需要迁移部分的数据,大多数数据还是放在原来的地方里不用管的。

        如图,我们可以把它看做一个环,这个环里总共有2^16个哈希值,假设有ABCD节点,每个节点负责一部分的哈希值。

 

         如下图,当我们增加节点时,只需把B的一小部分的值迁移到E桶里去就行了,ACD桶里的值并不用去管他,那么,相比于普通哈希来说,一致性哈希的在增加节点时的开销就小了很多

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值