集群与分布式的区别:集群的每个成员都具有完成整个任务的能力,分布式将任务分成多个部分。
增加一个Redis节点时,数据命中率显著下降,可能会造成穿过cache,直击DB。
一致性hash(Consistent Hashing)
将对象和cache都映射到同一个hash数值空间中,并且使用相同的hash算法。
顺时针分类到第一个遇到的cache中。
当删除或增加一个节点时,只会影响后面一个节点cache。
可能的问题:
cache节点分布的极不均匀(Hash倾斜性);
Hash倾斜性
虚拟节点
引入虚拟节点
引入多个虚拟节点,可以解决Hash倾斜性问题,增加命中率,命中率计算公式:
(1−n/(n+m))∗100