1、reids主从模式
2、redis复制原理
redis 的复制分为两部分操作 同步(SYNC)和 命令传播(command propagate)
3、redis主从复制原理
上面介绍了redis复制的两种操作,而redis得主从复制正式基于 同步 和 命令传播 来实现得。下面两张图展示了redis复制的流程:
4、redis主从复制优缺点
优点:
缺点:
总结:
redis主从复制的优点主要是提高了可用性缺点
1、Sentinel系统
下图是一个简单的Sentinel系统架构图,一个Sentinel系统监视一个主从集群,其中server1是Redis主服务器,server2/3/4是Redis 从服务器。主从之间利用上面的主从复制来达到主从一致。而Sentinel系统监视整个主从集群。
2、Sentinel故障转移
当Sentinel系统察觉到Server1主服务器下线时,就会终止server2/3/4的复制。
同时Sentinel将server2升级为主服务器,server3/4从新的主服务器进行复制。同时等待server1的再次上线。
Sentinel系统也可以主动降级主服务为从服务器,将从服务器升级为主服务器。
2.1、Sentinel 哨兵监控过程
Sentinel 哨兵监控集群过程:
2.2、Sentinel 哨兵故障转移
Sentinel 故障转移:
3、Sentinel 哨兵优缺点
优点:
缺点:
1、Redis较难支持在线扩容,在线扩容比较复杂。
总结:
sentinel 哨兵主要用来监控redis主从集群,提高了redis 主从集群的可用性。
1、reids cluster
Redis Cluster是一种服务器 Sharding 技术,redis 3.0版本开始正式提供。
Sentinel基本已经实现了高可用,但是每台机器都存储相同内容,很浪费内存,所以Redis Cluster实现了分布式存储。每台机器节点上存储不同的内容。
2、Redis Cluster 数据分片原理
redis 数据分片使用的是hash slot, redis集群有16384个哈希槽,每个Key通过CRC16校验后对16384取模来决定放置哪一个槽。
当存取redis key时候,redis会根据CRC16算法得到一个结果,然后把结果和16384求余,通过这个值去对应得节点获取数据。
这个时候,应用客户端实际上只需要连接其中任意一个节点即可,然后Redis Cluster 中每个节点都保存了其他节点得槽信息。这样当存取key计算完槽之后,通过保存槽信息从配置中获取节点信息,然后再去对应得节点获取数据。
3、Redis Cluster 复制原理
redis-cluster集群引入了主从复制模型,一个主节点对应一个或者多个从节点,当主节点宕机的时候,就会启用从节点。当其它主节点 ping 一个主节点 A 时,如果半数以上的主节点与 A 通信超时,那么认为主节点 A 宕机了。如果主节点 A 和它的从节点 A1 都宕机了,那么该集群就无法再提供服务了
4、redis Cluster 优缺点
优点: