关于java:Redis集群的三种方式详解附优缺点及原理区别

30次阅读

共计 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. 哨兵机制建设了多个哨兵节点(过程),独特监控数据节点的运行状况。
  2. 同时哨兵节点之间也相互通信,替换对主从节点的监控情况。
  3. 每隔 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| 分布式 | 高并发

正文完
 0