Redis 02 Redis实现分布式理论基础

集群与分布式的区别:集群的每个成员都具有完成整个任务的能力,分布式将任务分成多个部分。
增加一个Redis节点时,数据命中率显著下降,可能会造成穿过cache,直击DB。

一致性hash(Consistent Hashing)

将对象和cache都映射到同一个hash数值空间中,并且使用相同的hash算法。
Redis 02 Redis实现分布式理论基础
顺时针分类到第一个遇到的cache中。
当删除或增加一个节点时,只会影响后面一个节点cache。
可能的问题:
cache节点分布的极不均匀(Hash倾斜性);

Hash倾斜性

Redis 02 Redis实现分布式理论基础

虚拟节点

引入虚拟节点
Redis 02 Redis实现分布式理论基础
引入多个虚拟节点,可以解决Hash倾斜性问题,增加命中率,命中率计算公式:
(1n/(n+m))100(1-n/(n+m))*100%
Redis 02 Redis实现分布式理论基础