具体过程:
(1)先构造一个长度为0~2^32的整数环,根据节点名称的Hash值,将缓存服务器节点放置在这个Hash环上。
(2)根据需要缓存的数据的KEY值计算得到其Hash值,然后在Hash环上顺时针查找距离这个KEY值的Hash值最近的缓存服务器节点,完成KEY到服务器的Hash映射查找。
补充:
这个一致性Hash环使用二叉查找树实现,Hash查找过程实际上是在二叉查找树中查找不小于查找树的最小数值。
另外,为了解决上述算法带来的负载不均衡问题,通过使用虚拟层,将每台物理缓存服务器虚拟为一组虚拟缓存服务器,将虚拟服务器的Hash值放置在Hash环上,KEY在环上先找到虚拟服务器节点,再得到物理服务器的信息。