5.9. 数据分布算法
分布式数据存储的核心算法,数据分布的算法主要有三种算法:hash算法、一致性hash算法、hash slot算法。
hash算法 -> 一致性hash算法(memcached使用) -> hash slot算法(redis cluster 使用)
redis cluster 用不同的算法,就决定了数据如何分布到这些节点上去。
5.9.1. hash算法和弊端:大量缓存重建
客户端访问key,通过使用key的hash值对redis 节点数取摸,找到对应的节点去获取Key的数据。
其弊端在于,某个master宕机,所有落在此master的请求就会尝试去其他master获取,其他master没有数据,就会去数据库获取数据并进行缓存重建。一旦请求量过大,读取数据库并创建缓存就会出现承载压力过大而导致系统崩溃。
5.9.2. 一致性hash算法:缓存热点数据容易导致性能瓶颈
先构造一个0到2^32的整数环,然后将服务器节点的Hash值,放在该环上(可以理解为将你的ip做hash,将ip的HashCode放在环上)。然后根据需要缓存的数据的Key,计算Key的HashCode,然后