广州网站建设 中网科技,网站推广做那个较好呢,wordpress 报表系统,花之语网页设计代码hash#xff1b;简单的hash取余
优点#xff1a; 计算简单#xff0c;快速定位 缺点#xff1a; 容错和扩展差#xff0c;任何的增加机器或减少机器#xff0c;都会伴随着重新set值 比如原来有五台机器做缓存#xff0c;现在加一台#xff0c;那么余5就变成余6#x…hash简单的hash取余
优点 计算简单快速定位 缺点 容错和扩展差任何的增加机器或减少机器都会伴随着重新set值 比如原来有五台机器做缓存现在加一台那么余5就变成余6那么所有值都变了 操作不当的话短时间可能会造成缓存雪崩一般只能成倍扩展
一致性hashhash环
想象一个环共有2^32-1 个节点如果有五台机器缓存那么就将这五台的ip分别hash后对2^32-1取余得到的结果肯定在这个环上我们叫这个结果为落在某一个节点上 顺时针数每个节点到前一个节点直接的值将属于这个节点。 举个例子将数据key使用相同的函数Hash计算出哈希值并确定此数据在环上的位置从此位置沿环顺时针行走第一台遇到的服务器就是其应该定位到的服务器。 优点 增加机器和减少机器对整体影响不大尤其是机器特别多的情况下影响更小 缺点 如果几个ip计算出来的节点不均匀可能会出现缓存倾斜比如一个机器上的缓存特别多另一个机器上的缓存特别少 但是针对这种问题有成熟的解决方案例如用虚拟节点。 比如现在有两个机器a,b那么基本上肯定会出现缓存倾斜那么我们就做出几个虚拟节点a_1,a_2,a_3,b_1,b_2,b_3 用这些再做计算基本上就可以做到相对平均了 一般生产过程中一个机器都会做出32个虚拟节点来防止缓存倾斜
总结
简单常见用hash就行重要场景考虑一致性hash