Hash
对服务器节点数取模
缺点:增加或减少节点时,查找时无法直接定位节点
一致性Hash
一致性Hash算法是对2^32取模,将整个哈希值空间组织成一个虚拟的圆环,这个由2^32个点组成的圆环称为Hash环
2,将各个服务器使用Hash进行一个哈希(选择服务器的IP或主机名作为关键字)
3,定位数据节点:将数据key使用相同的函数Hash计算出哈希值,并确定此数据在环上的位置,从此位置沿环顺时针“行走”,第一台遇到的服务器就是其应该定位到的服务器
容错性和可扩展性
某节点不可用,只影响该节点到上一个节点(沿着逆时针方向行走遇到的第一台服务器),这一段的存放数据
数据倾斜问题
在服务节点太少时,容易因为节点分部不均匀而造成数据倾斜(被缓存的对象大部分集中缓存在某一台服务器上)
引入虚拟节点机制