为了解决数据迁移慢的问题,我们采取一致性哈希的问题。
目前应用在分布式缓存中。
可以有效的解决分布式存储结构下
动态增加和删除节点所带来的问题。
我们把全量的缓存空间当做一个环形存储结构。
然后将每一个缓存key转化成一个32位的二进制数,
也就是对应着环形空间的某一个缓存区。
我们的每一个缓存节点采用相同的hash算法,映射到环形空间中。
每一个key顺时针方向最近节点就是key所归属的存储节点。
这样在动态插入和删除节点的时候,
为了优化节点太少而产生的不均衡的情况,
我们引入虚拟节点,就是把原来的物理节点映射处n个子节点
最后把所有的子节点都映射到环形空间上。由于虚拟节点数量较多
缓存key与虚拟节点之间的映射变得相对均衡了。