一致性哈希

一致性hash算法主要为解决在动态变化的cache环境中

4个定义:

1、平衡性。尽量保证各key能够平衡分配到其他每个节点。

2、单调性。尽量保证当节点发生变化时,最少的节点数据的迁移变动。

3、分散性。分布式环境中,

4、负载性。

分布式集群中,对机器的添加删除是最基本的功能,当有节点添加删除时,尽量避免原有key值的数据迁移而无法找到。

环形hash空间

建立一个环境的hash空间,有2的32次方个桶空间,它们逻辑上形成一个环形。

把数据通过hash算法映射到环形上:

hash(key1) = hash1

hash(key2) = hash2

hash(key3) = hash3

将机器按某个特征(如ip,机器名等)同样映射到环上:

hash(host1) = hash1

hash(host2) = hash2

hash(host3) = hash3

如此,将机器和对象处于同一个哈希空间中,然后可按照顺时针或逆时针将key存储到对应的host机器上。

这样就保证了对节点的添加或删除操作能避免大量的数据迁移。

一致性哈希为保证平衡性,引入了虚拟节点的概念。

虚拟节点是实际节点在hash空间的复制品,避免节点过少导致出现失衡的情况。


参考链接:https://blog.csdn.net/cywosp/article/details/23397179/



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值