之前也了解到过一致性哈希算法,但是没有用go实现过,刚好最近看GeeCache,动手实现下一致性哈希算法
正文:
我们先来想下一致性哈希算法的数据结构含有哪些内容:
1.map 用来存储虚拟节点对应的真实节点,是一个映射表
2.hash 哈希函数
3.key 哈希环,存储所有虚拟节点
4.replicas 虚拟节点的倍数
了解过一致性哈希算法的朋友,应该是能够理解为什么要有上面的内容,下面我们用代码实现下:
下面,我们实现获取节点的方法:
将key经过hash运算,在哈希环上顺时针找到第一个节点,存入
添加节点的方法
以上就是一致性哈希的实现方法,也挺好理解的。记录下~
| 不骄不躁,保持学习
Original: https://www.cnblogs.com/freeyw/p/16554169.html
Author: 要坚持的girl
Title: 【golang】分布式缓存 – 一致性哈希算法
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/516227/
转载文章受原作者版权保护。转载请注明原作者出处!