聊聊一致性Hash算法代码实现

网站建设4年前发布
35 0 0

一致性哈希算法(Consistent Hashing Algorithm)是一种分布式算法,常用于负载均衡。Memcached client也选择这种算法,解决将key-value均匀分配到众多Memcached server上的问题。它可以取代传统的取模操作,解决了取模操作无法应对增删Memcached Server的问题(增删server会导致同一个key,在get操作时分配不到数据真正存储的server,命中率会急剧下降)。,一致性哈希将整个哈希值空间组织成一个虚拟的圆环,如假设某哈希函数H的值空间为0-2^32-1(即哈希值是一个32位无符号整形)。,整个空间按顺时针方向组织,0和232-1在零点中方向重合。,一致性hash算法常用于分布式缓存服务,把所有的服务节点进行hash,得到hash环上的位置。,添加进服务的数据用同样的算法进行hash,然后从hash环上取得大于该hash值的第一个节点,如果没有大于该值的节点,那么就取整个环的第一个节点。,在节点太少的情况,有可能存在hash偏移。就是节点负载不均衡,大量数据落在其中一个节点上面。,解决办法是,在环上面虚拟出足够多的节点,虚拟的节点和实际节点做对应。,以上代码输出值:,https://www.cnblogs.com/lpfuture/p/5796398.html,

© 版权声明

相关文章