一致性hash算法
这个,看到好多地方都讲了。。
当年面试阿里就被问到了。。。 还把这个和 hashMap 里的hash 搞混了。。唉。。。
简单说,就是为了实现把应用的 所有Key, 分散到多个 memcache的算法。
最基本的 分散方式就是取余。。。 但取余对于 memcache 的增减,影响太大了。。。数量一变,全都完蛋。
所以一致性hash, 就采用圆环分段式。。。 将圆环的一段都归为落到自己的节点。
然后,引申出来 虚拟节点。。。。这样节点少的时候,可以分配的更均匀当增加memcache的 时候, 要迁移的key 更加少一些。
(这个一致性hash 和 hashMap 里的hash,扩容,equals概念,一点关系都没有)
课后扩展:
找一个memcache库,读一读 一致性hash的具体代码实现。
参考资料:
https://cloud.tencent.com/developer/article/2040911?from=article.detail.1477161