【01笔记】Hash和一致性Hash

假设有四台图片缓存服务器。

1、随机

所有图片随机存在四台机器上,则需访问某个图片时要遍历所有机器。
缺点:慢

2、Hash

利用Hash的方式对图片分库存储,
hash(a.png)%4
缺点:当机器数量变化时,所有缓存失效,需重新缓存。

3、一致性Hash

对2^32取模,将整个哈希空间组成一个虚拟的环。
【01笔记】Hash和一致性Hash
将机器IP或主机名为关键字进行哈希,并映射到该环上某个位置,
【01笔记】Hash和一致性Hash
与机器数量无关,但可能出现数据倾斜。
【01笔记】Hash和一致性Hash
解决:引入虚拟节点。
【01笔记】Hash和一致性Hash
当节点数发生变化时,
【01笔记】Hash和一致性Hash
【01笔记】Hash和一致性Hash
对于节点变化,引起访问数据不存在时,则直接访问数据库,然后再该节点上新增缓存。将所有节点失效的风险降到某几个节点上。