九redis三种集群模式

sun_lm sun_lm     2023-04-01     742

关键词:

系统中只有一台redis服务器是不可靠的,容易出现单点故障。为了避免单点故障,可以使用多台redis服务器组成redis集群。redis支持三种集群模式。

一、主从模式

至少需要两台redis服务器,一台主节点(master)、一台从节点(slave),组成主从模式的Redis集群。通常来说,master主要负责写,slave主要负责读,主从模式实现了读写分离。

集群中有多台redis节点,就必须保证每个节点中的数据是一致的。redis中,为了保持数据一致性,数据总是从master复制到slave,这就是redis的主从复制。

主从复制的作用:

  • 数据冗余:实现了数据的热备份,是持久化之外的另一种数据冗余方式
  • 故障恢复:master故障时,slave可以提供服务,实现故障快速恢复
  • 负载均衡:master负责写,slave负责读。在写少读多的场景下可以极大提高redis吞吐量
  • 高可用基石:主从复制是redis哨兵模式和集群模式的基础。

主从复制实现原理:

主从复制过程主要可以分为3个阶段:连接建立阶段、数据同步阶段、命令传播阶段。

  1. 连接建立阶段:在主从节点之间建立连接,为数据同步做准备。
  2. 数据同步阶段:执行数据的全量(或增量)复制(复制RDB文件)
  3. 命令传播阶段:主节点将已执行的命令发送给从节点,从节点接收命令并执行,从而实现主从节点的数据一致性

主从模式中,一个主节点可以有多个从节点。为了减少主从复制对主节点的性能影响,一个从节点可以作为另外一个从节点的主节点进行主从复制。

不足之处:主节点宕机之后,需要手动拉起从节点来提供业务,不能达到高可用。

二、哨兵模式(Sentinel)

Redis Sentinel是Redis的高可用实现方案,它可以实现对redis的监控、通知和自动故障转移,当redis master挂掉之后,可以自动拉起slave提供业务,从而实现redis的高可用。为了避免Sentinel本身出现单点故障,Sentinel自己也可采用集群模式。

 哨兵模式的原理

Sentinel是一种特殊的redis节点,每个sentinel节点会维护与其他redis节点(包括master/slave/sentinel)的心跳。

当一个sentinel节点与master节点的心跳丢失时,这个sentinel节点就会认为master节点出现了故障,处于不可用的状态,这种判定叫作主观下线(即sentinel节点自己主观认为master下线了)

之后,这个sentinel节点会与其他sentinel节点交换信息,如果发现认为主节点发生故障的sentinel节点的个数超过了某个阈值(通常为sentinel节点总数的1/2+1,即超过半数),则sentinel会认为master节点已经处于客观下线的状态,即大家都认为master故障不可用了。

之后,sentinel节点中会选举处一个sentinel leader来执行redis主节点的故障转移。

被选举出的 Sentinel 领导者进行故障转移的具体步骤如下:

(1)在从节点列表中选出一个节点作为新的主节点

  • 过滤不健康或者不满足要求的节点;

  • 选择 slave-priority(优先级)最高的从节点, 如果存在则返回, 不存在则继续;

  • 选择复制偏移量最大的从节点 , 如果存在则返回, 不存在则继续;

  • 选择 runid 最小的从节点。

(2)Sentinel 领导者节点会对选出来的从节点执行 slaveof no one 命令让其成为主节点。

(3)Sentinel 领导者节点会向剩余的从节点发送命令,让他们从新的主节点上复制数据。

(4)Sentinel 领导者会将原来的主节点更新为从节点, 并对其进行监控, 当其恢复后命令它去复制新的主节点。

 三、集群模式

主从模式实现了数据的热备份,哨兵模式实现了redis的高可用。但是有一个问题,这两种模式都没有解决,这两种模式都只能有一个master节点负责写操作,在高并发的写操作场景,master节点就会成为性能瓶颈。

redis的集群模式中可以实现多个节点同时提供写操作,redis集群模式采用无中心结构,每个节点都保存数据,节点之间互相连接从而知道整个集群状态。

如图所示集群模式其实就是多个主从复制的结构组合起来的,每一个主从复制结构可以看成一个节点,那么上面的Cluster集群中就有三个节点。

 

redis的三种集群模式

一、简介1、为什么要用redis?大并发的情况下,所有的请求直接访问数据库,数据库会出现连接异常。这个时候,就需要使用Redis做一个缓冲操作,让请求先访问到Redis,而不是直接访问数据库。2、为什么要用集群?集群,就是... 查看详情

redis主从模式,哨兵模式,cluster(集群)模式简介

...》《redis官网文档》或者《redis中文网》Redis集群方式共有三种:主从模式,哨兵模式,cluster(集群)模式一.主从模式主从模式:是三种集群方式里最简单的。它主要是基于Redis的主从复制特性架构的。通常我们会设... 查看详情

redis高可用三种模式(代码片段)

Redis高可用三种模式一、Redis主从复制1.概念2.作用3.工作流程4.实验部署二、Redis哨兵模式1.原理2.作用3.结构4.启动5.实验部署三、Redis群集模式1.概述2.作用(1)数据分区(2)高可用3.Redis集群的数据分片Redis集群的... 查看详情

redis集群部署的三种模式(代码片段)

一、Redis简介Redis是一款完全开源免费、遵守BSD协议的高性能(NOSQL)的key-value数据库。它使用ANSIC语言编写,支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。Redis的使用场景有如下一些ÿ... 查看详情

redis==>集群的三种模式(代码片段)

一、主从同步/复制  通过持久化功能,Redis保证了即使在服务器重启的情况下也不会丢失(或少量丢失)数据,因为持久化会把内存中数据保存到硬盘上,重启会从硬盘上加载数据。 但是由于数据是存储在... 查看详情

windows系统搭建redis集群三种模式(零坑最新版)(代码片段)

主从复制新建以下三个目录,用来部署一主二从修改配置文件将redis安装目录下的所有文件复制一份于新建好的三个目录下,然后修改配置文件redis.windows.conf中的配置。修改端口号#修改成对应的端口号port6379slave节点增加... 查看详情

redis集群介绍与搭建(主从哨兵cluster集群)!(代码片段)

...is集群1.简介2.Redis集群的优势3.Redis集群的实现方法二.Redis三种模式原理介绍1.主从模式2.哨兵模式(Sentinel)(1)哨兵模式集群架构(2)哨兵模式主要功能(3)哨兵们监控整个系统节点的过程(4)哨... 查看详情

redis集群介绍与搭建(主从哨兵cluster集群)!(代码片段)

...is集群1.简介2.Redis集群的优势3.Redis集群的实现方法二.Redis三种模式原理介绍1.主从模式2.哨兵模式(Sentinel)(1)哨兵模式集群架构(2)哨兵模式主要功能(3)哨兵们监控整个系统节点的过程(4)哨... 查看详情

带你整理面试过程中关于redis主从模式哨兵模式和集群模式详解的相关知识点

Redis集群方式共有三种:主从模式,哨兵模式,cluster(集群)模式文章目录一、单机模式二、主从模式三、哨兵模式四、哨兵模式下的监控原理五、集群六、集群的故障转移七、为什么Redis集群有16384个槽八、集群模式和哨兵模式的... 查看详情

浅谈redis——哨兵模式/集群

...xff0c;只能由主节点复制到从节点。配置复制的方式有以下三种:1)在配置文件中加入slaveofmasterHostmasterPort随Redis启动生效。2)在redis-server启动命令后加入–slaveofmasterHostmasterPort生效。3)直接使用命令:slaveofmasterHostmas 查看详情

rediso(* ̄︶ ̄*)o进入正题---搭建集群模式(代码片段)

...1、简介2、Redis集群的优势3、Redis集群的实现方法二、Redis三种模式原理介绍1、主从模式2、哨兵模式(Sentinel)3、Cluster集群模式3.1、作用三、搭建主从复制1、安装redis2、修改Redis配置文件3、验证主从效果四、搭建哨兵模式1、修改... 查看详情

redis的三种集群原理

redis有三种集群方式:主从复制、哨兵模式和Cluster集群1、主从复制原理:从服务器连接主服务器,发送SYNC命令;主服务器接收到SYNC命名后,开始执行BGSAVE命令生成RDB文件并使用缓冲区记录此后执行的所有写... 查看详情

redis高可用架构-redis集群,一文get三种方式(代码片段)

前言容量不够,redis如何进行扩容?并发写操作,redis如何分摊?另外,主从模式,薪火相传模式,主机宕机,导致ip地址发生变化,应用程序中配置需要修改对应的主机地址、端口等信息。之前... 查看详情

高可用集群架构——redis的主从复制与哨兵模式,cluster(代码片段)

redis的集群一、redis的集群模式1、三种模式2、redis集群与哈希槽二、Redis主从复制概述1、Redis主从复制概述2、主从复制流程三、哨兵模式1、简单介绍2、哨兵的工作原理5、哨兵模式下的故障迁移四、Cluster群集redis-Cluster的故障转... 查看详情

redis哨兵集群原理及部署

...习参考,如有侵权,请联系删除,多谢!Redis的集群方案大致有三种:1)rediscluster集群方案;2)master/slave主从方案;3)哨兵模式来进行主从替换以及故障恢复。一、sentinel哨兵模式介绍Sentinel( 查看详情

redis数据库主从哨兵群集(代码片段)

...、Redis集群理论前言与介绍1.1前言1.2Redis群集介绍二、Redis三种模式2.1主从模式2.2哨兵模式2.3Cluster群集三、实验搭建3.1Redis主从复制模式3.1.1实验环境3.1.2三台服务器安装Redis5.0.73.1.3Master节点3.1.4Slaves节点3.1.5在Master节点查看验证3.2... 查看详情

详细剖析redis三种集群策略

...那么,如何提升redis的性能呢?搭建集群。redis主要提供三种集群策略:主从复制集群哨 查看详情

redis5集群新特性(代码片段)

Redis的高可用Redis高可用一般有三种模式:主从(一主一从)RedisSentinel(哨兵模式)RedisCluster(Master、Cluster)主从Redis的一主一从其实非常简单,只需要在配置文件中设置如下:slaveofIP6379如࿱... 查看详情