Redis集群三种方式(图文详解)

Redis集群三种方式(图文详解)-mikechen

Redis提供了三种集群方式,下面我重点详解Redis三种集群方式的原理及优缺点等区别@mikechen

Redis主从复制模式

1.Redis主从复制定义

Redis主从复制是指通过将一个Redis服务器的数据复制到多个从Redis服务器上,实现多个Redis服务器之间的数据同步。

Redis主从复制前者称为主节点(master),后者称为从节点(slave)。

如下图所示:

Redis集群三种方式(图文详解)-mikechen

主从复制是单向的,只能由主节点到从节点,主从复制主要用于数据的备份和恢复,可以提高数据的安全性。

 

2.Redis主从复制工作原理

Redis主从复制流程,如下图所示:

Redis集群三种方式(图文详解)-mikechen

主要包含如下步骤:

  1. Redis主从复制采用异步方式,从节点需要向主节点发送SYNC命令以触发复制操作。
  2. 主节点接收SYNC命令后将暂停接受客户端的新命令请求,并将本地所有数据写入RDB文件中,随后将RDB文件发送给从节点并同时开启一个缓冲区进行数据传输,等待从节点响应确认收到。
  3. 从节点接收到RDB文件后,将其保存到本地磁盘,并加载其中的数据,该文件保存了主节点的全量数据。
  4. 当从节点与主节点正常建立起连接时,主节点会将没有被从节点同步的命令以增量的方式发送给从节点,直到两者的数据完全一致为止。这样保证了从节点与主节点之间的数据同步。

 

Redis哨兵模式

1.什么是哨兵模式

Redis哨兵模式是Redis官方提供的高可用解决方案,主要负责监控Redis实例的状态、自动进行故障切换等。

如下图所示:

Redis集群三种方式(图文详解)-mikechen

基于Redis Sentinel的集群模式通常由数个Redis Sentinel负责监控多个Redis Master-Slaver节点,并根据需要自动完成故障切换、主从切换等操作。

 

2.哨兵模式工作原理

如下图所示:

Redis集群三种方式(图文详解)-mikechen

工作原理如下:

  1. 哨兵节点发现主节点失效

哨兵节点会定期向主节点发送ping命令,如果主节点长时间没有响应(比如10秒钟),则认为主节点已经失效。

  1. 哨兵节点选举新的主节点

当哨兵节点发现主节点失效后,它会向其他哨兵节点发送消息,尝试达成共识,选举出一个新的主节点。

  1. 哨兵节点更新客户端

一旦新的主节点被选举出来,哨兵节点会通过发布-订阅机制向客户端推送新的主节点信息,客户端可以根据此信息更新自己的配置,连接新的主节点。

  1. 哨兵节点监控主节点状态

一旦新的主节点上线,哨兵节点会定期监测主节点的状态,如果发现主节点再次失效,则重复以上步骤,选择一个新的主节点。

总结起来,Redis哨兵模式通过监控主节点的状态,并在主节点失效时及时选举新的主节点,实现了高可用性的分布式系统架构。

 

Redis集群模式

1.什么是Redis集群模式?

Redis 集群模式是Redis官方提供的分布式集群方案,支持水平扩展,适合大规模应用场景。

Redis Cluster集群是一种分布式Key-Value存储解决方案,用于处理大规模数据存储和实时高性能数据访问,它通过将数据分散到多个节点上,实现了自动分区、自动负载均衡和高可用性。

 

2.Redis集群模式原理

在Redis的每一个节点上,都有这么两个东西,一个是插槽(slot),它的的取值范围是:0-16383,还有一个就是cluster。

如下图所示:

Redis集群三种方式(图文详解)-mikechen

Redis Cluster集群的原理包括以下几个方面:

  1. 数据分片:集群将数据分为16384个槽(slot),每个节点可以处理0个或最多16384个槽。
  2. 请求路由:当客户端需要访问集群时,首先需要知道目标key所在的节点,集群提供了一种基于哈希值的请求路由方案,客户端可以根据key计算出对应的槽位。
  3. 自动故障恢复:集群中的节点发生故障时,其他节点可以自动接管故障节点的工作,继续提供服务。
  4. 多个key的操作:集群支持单个key的访问和多个key的操作,对于涉及多个key的操作,例如交集、并集、差集等,需要使用 Redis事务 来保证原子性。

 

Redis集群模式应用

主要是针对海量数据+高并发+高可用的海量数据场景,Redis集群模式的性能和高可用性均优于哨兵模式。

陈睿mikechen

10年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。

关注「mikechen」公众号,获取更多技术干货!

后台回复面试即可获取《史上最全阿里Java面试题总结》,后台回复架构,即可获取《阿里架构师进阶专题全部合集

评论交流
    说说你的看法