Redis提供了三种集群形式,上面我重点详解Redis三种集群形式的原理及优缺点等区别@mikechen
目录
[**]()
- Redis主从复制模式
- Redis哨兵模式
- Redis集群模式
Redis主从复制模式
1.Redis主从复制定义
主从模式是三种模式中最简略的,主从模式指的是应用一个Redis实例作为主机,其余的实例作为备份机,主机和从机的数据完全一致。
如下图所示:
主机反对数据的写入和读取等各项操作,而从机则只反对与主机数据的同步和读取,也就是说客户端能够将数据写入到主机,由主机主动将数据的写入操作同步到从机。
2.Redis主从复制工作原理
- 当slave启动后被动向master发送SYNC命令;
- master接管到SYNC命令后在后盾保留快照和缓存保留快照这段时间的命令,而后将保留的快照文件和缓存的命令发送给slave;
- slave接管到快照文件和命令后加载快照文件和缓存的执行命令;
- 复制初始化后,master每次接管到的写命令都会同步发送给slave,保障主从数据一致性。
3.Redis主从复制优缺点
Redis主从复制长处: 做到读写拆散,进步服务器性能;
Redis主从复制毛病: 在主从模式中,一旦Master节点因为故障不能提供服务,须要人工将Slave节点晋升为Master节点。
Redis哨兵模式
1.为什么须要哨兵模式?
刚刚下面讲到了主从模式当主服务器宕机后,须要手动把一台从服务器切换为主服务器,须要人工干预麻烦费劲,为了解决这个问题呈现了哨兵模式。
如下图所示:
哨兵模式由一个或多个Sentinel实例组成的Sentinel零碎,它能够监督所有的Master节点和Slave节点,并在被监督的Master节点进入下线状态时,主动将下线Master服务器。
2.哨兵模式工作原理
当主节点呈现故障时,由Redis Sentinel主动实现故障发现和转移,并告诉利用方,实现高可用性。
如下图所示:
- 哨兵机制建设了多个哨兵节点(过程),独特监控数据节点的运行状况。
- 同时哨兵节点之间也相互通信,替换对主从节点的监控情况。
- 每隔1秒每个哨兵会向整个集群:Master主服务器+Slave从服务器+其余Sentinel(哨兵)过程,发送一次ping命令做一次心跳检测。
3.哨兵模式的优缺点
哨兵模式长处:最大的长处就是主从能够主动切换,零碎更强壮,可用性更高;
哨兵模式毛病:最大的毛病就是还要多保护一套哨兵模式,实现起来也变的更加简单减少保护老本;
Redis集群模式
1.为什么须要Redis集群模式
哨兵模式基于主从模式,实现读写拆散,它还能够主动切换,零碎可用性更高。然而它每个节点存储的数据是一样的,节约内存,因而在Redis3.0后Cluster集群应运而生。
Redis Cluster是一种服务器Sharding技术(分片和路由都是在服务端实现),采纳多主多从,每一个分区都是由一个Redis主机和多个从机组成,片区和片区之间是互相平行的。
2.Redis集群模式原理
在Redis的每一个节点上,都有这么两个货色,一个是插槽(slot),它的的取值范畴是:0-16383,还有一个就是cluster。
如下图所示:
当咱们的存取的时候Redis会依据crc16的算法得出一个后果,而后把后果对 16384 求余数,这样每个 key 都会对应一个编号在 0-16383 之间的哈希槽。
通过这个值去找到对应的插槽所对应的节点,而后间接主动跳转到这个对应的节点上进行存取操作。
为了保障高可用,RedisCluster集群引入了主从模式,一个主节点对应一个或者多个从节点,当主节点宕机的时候,就会启用从节点。
Redis集群模式利用
次要是针对海量数据+高并发+高可用的海量数据场景,Redis集群模式的性能和高可用性均优于哨兵模式。
作者简介
陈睿|mikechen,10年+大厂架构教训,mikechen的互联网架构作者,专一于互联网架构技术。
浏览mikechen的互联网架构更多技术文章合集
Java并发|JVM|MySQL|Spring|Redis|分布式|高并发