共计 1667 个字符,预计需要花费 5 分钟才能阅读完成。
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| 分布式 | 高并发