Redis集群策略分析
一:主从模式
-
结构图
-
特点
1:主负责写,从负责读。这种方式的话应对比较大的QPS,QPS增大只需要增加slave节点数量就可以了。
2:无法保证强一致性,主从同步存在延迟,只能保证最终的一致性。
3:master宕机的情况下,无法写入,没有办法自动恢复。
二:哨兵模式
- 结构图
-
特点
1:哨兵模式是分布式的系统,可以自动转移故障。在master宕机的时候自动选择出slave转为master继续提供服务,保证服务的高可用。
2:当确认主节点宕机后,在从节点中选一个作为主节点,其他从节点连接到新的主节点上,通知客户端最新的地址
3:哨兵模式导致节点数据冗余,正常情况下slave没有用的(只是在异常的时候保证高可用)
三:RedisCluster模式
- 结构图
基于哨兵模式节点浪费,主从模式master单点故障。既可以满足分布式的高可用,也可以满足多节点数据分片的问题。
优点:
1:动态的扩容,缩容。保证数据不冗余,数据的吞吐量更大。
2:数据自动分片,每个master节点存放部分数据。
3:保证数据高可用,允许部分节点的master故障。
数据分片的方法:
1:客户端分片:客户端使用一致性哈希等算法决定键应当分布到哪个节点
2:中间层分片:将客户端请求发送到代理上,由代理转发请求到正确的节点上
3:服务器分片:hash slot算法 Redis Cluster
当某个集群节点宕机了,只会导致该节点数据不可用,