如何解决Redis单点故障——Redis主从架构和哨兵模式

redis单点故障——主从架构与哨兵模式 目录一、Redis主从和哨兵模式简介二、哨兵模式原理和作用1.2.1、哨兵模式原理1.2.2、哨兵模式的作用三、环境搭建与测试 一、Redis主从和哨兵模式简介 采用主从架构的模式,可以实现当主redis进行数据存储操作时,从redis也同样进行存储,实现了数据的备份;再结合哨兵模式,监控所有redis节点,当主redis宕机后,如果超过一半数量的哨兵都检测到主宕机,就会在从redis中选举出新的主redis,于是从redis切换为新的主服务器,继续提供redis服务,解决了单点故障的问题 二、哨兵模式原理 阅读详情

一、redis主从复制

1.什么是Redis主从复制

主从复制,是将一台Redis服务器的数据,复制到其他的Redis服务器

  • 前者称为主节点(master),后者称为从节点(Slave);
  • 数据的复制是单向的,只能由主节点到从节点

默认情况下,每台Redis服务器都是主节点;

  • 一个 主节点可以有多个从节点(或者没有从节点),但是一个从节点只能有一个主节点。

2.Redis主从复制的作用

  • 数据冗余:主从复制实现了数据的热备份,是持久化之外的一种数据冗余方式。
  • 故障恢复:当主节点出现问题时,可以由从节点提供服务,实现快速的故障恢复;实际上是一种服务的冗余。
  • 负载均衡:在主从复制的基础上,配合读写分离,可以由主节点提供写服务,由从节点提供读服务(即写Redis数据时应用连接主节点,读Redis数据时应用连接从节点),分担服务器负载;尤其是在写少读多的场景下,通过多个从节点分担读负载,可以大大提高Redis服务器的并发量。
  • 高可用基石:除了上述作用以外,主从复制还是哨兵和集群能够实施的基础,因此说主从复制是Redis高可用的基础。

3、Redis主从复制的流程

  • 第一步:若启动一个Slave机器进程,则它会向Master机器发送一个“sync command”命令,请求同步连接。

  • 第二步:无论是第一次连接还是重新连接,Master机器都会启动一个后台进程,将数据快照保存到数据文件中(执行rdb操作),同时Master还会记录修改数据的所有命令并缓存在数据文件中。

  • 第三步:后台进程完成缓存操作之后,Maste机器就会向Slave机器发送数据文件,Slave端机器将数据文件保存到硬盘上,然后将其加载到内存中,接着Master机器就会将修改数据的所有操作一并发送给Slave端机器。若Slave出现故障导致宕机,则恢复正常后会自动重新连接。

  • 第四步:Master机器收到Slave端机器的连接后,将其完整的数据文件发送给Slave端机器,如果Mater同时收到多个Slave发来的同步请求,则Master会在后台启动一个进程以保存数据文件,然后将其发送给所有的Slave端机器,确保所有的Slave端机器都正常。

4、Redis主从复制的搭建

主机操作系统IP地址安装包
MasterCentOS7192.168.235.10redis-5.0.7.tar.gz
Slave1CentOS7192.168.235.20redis-5.0.7.tar.gz
Slave2CentOS7192.168.235.30redis-5.0.7.tar.gz

(1)安装Redis (所有主机)

yum install -y gcc gcc-c++ make
cd /opt
tar zxvf redis-5.0.7.tar.gz

cd /opt/redis-5.0.7/
make && make PREFIX=/usr/local/redis install

cd /opt/redis-5.0.7/utils
./install_server.sh
......
#回车四次后,手动输入,需要一次性输入正确
Please select the redis executable path [] /usr/local/redis/bin/redis-server  	

ln -s /usr/local/redis/bin/* /usr/local/bin/

(2)修改Master节点Redis配置文件

Master:192.168.235.10

vim /etc/redis/6379.conf
#70行,修改bind 项,0.0.0.0监听所有网段
bind 0.0.0.0
#137行,开启守护进程
daemonize yes
#172行,指定日志文件目录
logfile /var/log/redis_6379.log
#264行,指定工作目录
dir /var/lib/redis/6379
#700行,开启AOF持久化功能
appendonly yes

/etc/init.d/redis_6379 restart

在这里插入图片描述
(3)修改Slave节点Redis配置文件

Slave:192.168.235.20

Slave:192.168.235.30

vim /etc/redis/6379.conf
#70行,修改bind 项,0.0.0.0监听所有网卡
bind 0.0.0.0
#137行,开启守护进程
daemonize yes
#172行,指定日志文件目录
logfile /var/log/redis_6379.log
#264行,指定工作目录
dir /var/lib/redis/6379
#288行,添加要同步的Master节点IP和端口
replicaof 192.168.235.10 6379
#700行,开启AOF持久化功能
appendonly yes

/etc/init.d/redis_6379 restart

(4)验证主从

Master:192.168.235.10

在Master节点看日志

tail -f /var/log/redis_6379.log

在这里插入图片描述
在Master上验证从节点

redis-cli info replication

在这里插入图片描述
从服务器上也可验证

在这里插入图片描述

二、哨兵模式

功能:在主从复制的基础上,哨兵加入了主节点的自动故障转移

1.哨兵模式的原理

  • 哨兵(sentinel):是一个分布式系统,用于对主从结构中的每台服务器进行监控,当出现故障时通过投票机制选择新的 Master 并将所有 Slave 连接到新的 Master。所以整个运行哨兵的集群的数量不得少于3个节点。

2.哨兵模式的作用

  • 监控:哨兵会不断地检查主节点和从节点是否运作正常。
    自动故障转移:当主节点不能正常工作时,哨兵会开始自动故障转移操作,它会将失效主节点的其中一个从节点升级为新的主节点,并让其他从节点改为复制新的主节点。
  • 通知(提醒):哨兵可以将故障转移的结果发送给客户端。

3.哨兵模式的结构

哨兵结构由两部分组成,哨兵节点和数据节点:

  • 哨兵节点:哨兵系统由一个或多个哨兵节点组成,哨兵节点是特殊的redis节点,不存储数据。
  • 数据节点:主节点和从节点都是数据节点。

哨兵的启动依赖于主从模式,所以须把主从模式安装好的情况下再去做哨兵模式,所有节点上都需要部署哨兵模式,哨兵模式会监控所有的 Redis 工作节点是否正常,当 Master 出现问题的时候,因为其他节点与主节点失去联系,因此会投票,投票过半就认为这个 Master 的确出现问题,然后会通知哨兵间,然后从 Slaves 中选取一个作为新的 Master。

4.架构模式的搭建

环境配置

主机操作系统IP地址安装包
MasterCentOS7192.168.235.10redis-5.0.7.tar.gz
Slave1CentOS7192.168.235.20redis-5.0.7.tar.gz
Slave2CentOS7192.168.235.30redis-5.0.7.tar.gz

(1)修改Redis配置文件(所有节点操作)

vim /opt/redis-5.0.7/sentinel.conf
#17行,关闭保护模式
protected-mode no
#21行,Redis哨兵默认的监听端口
port 26379
#26行,指定sentinel为后台启动
daemonize yes
#36行,指定日志存放路径
logfile "/var/log/sentinel.log"
#65行,指定数据库存放路径
dir "/var/lib/redis/6379"
#84行,指定该哨兵节点监控192.168.163.10:6379这个主节点,该主节点的名称是mymaster,最后的2的含义与主节点的故障判定有关
#至少需要2个哨兵节点同意,才能判定主节点故障并进行故障转移
sentinel monitor mymaster 192.168.163.10 6379 2
#113行,判定服务器down掉的时间周期,默认30000毫秒(30秒)
sentinel down-after-milliseconds mymaster 30000
#146行,故障节点的最大超时时间为180000(180秒)
sentinel failover-timeout mymaster 180000

(2)启动哨兵模式

先启动master,在启动slave

cd /opt/redis-5.0.7/
redis-sentinel sentinel.conf &

(3)查看哨兵模式信息

redis-cli -p 26379 info Sentinel

(4)故障模拟


#查看redis-server进程号
ps aux | grep redis
root    46451  0.1  0.4 156404  7776 ?    Ssl  09:17   0:04 /usr/local/redis/bin/redis-server 0.0.0.0:6379
root    46884  0.2  0.4 153844  7744 ?    Ssl  09:54   0:01 redis-sentinel *:26379 [sentinel]
root    46999  0.0  0.0 112676  984 pts/2   R+   10:04   0:00 grep --color=auto redis


#杀死 Master 节点上redis-server的进程号,模拟故障
kill -9 46451		#Master节点上redis-server的进程号

(5)验证结果
主Master

tail -f /var/log/sentinel.log
#-------日志信息------------


redis-cli -p 26379 INFO Sentinel
# 查看哨兵模式信息  地址会变

三、Redis集群模式

1、redis群集的概念

  • 集群,即Redis Cluster,是Redis 3.0开始引入的分布式存储方案。
  • 集群由多个节点(Node)组成,Redis的数据分布在这些节点中。集群中的节点分为主节点和从节点:只有主节点负责读写请求和集群信息的维护;从节点只进行主节点数据和状态信息的复制。

2、集群的作用

(1)数据分区

  • 数据分区(或称数据分片)是集群最核心的功能。
  • 集群将数据分散到多个节点,一方面突破了Redis单机内存大小的限制,存储容量大大增加;另一方面每个主节点都可以对外提供读服务和写服务,大大提高了集群的响应能力。
    Redis单机内存大小受限问题,在介绍持久化和主从复制时都有提及;例如,如果单机内存太大,bgsave和bgrewriteaof的fork操作可能导致主进程阻塞,主从环境下主机切换时可能导致从节点长时间无法提供服务,全量复制阶段主节点的复制缓冲区可能溢出。

(2)高可用

  • 集群支持主从复制和主节点的自动故障转移(与哨兵类似);当任一节点发生故障时,集群仍然可以对外提供服务。

3.Redis集群的数据分片

  • Redis集群引入了哈希槽的概念
  • Redis集群有16384个哈希槽(编号0-16383)
  • 集群的每个节点负责一部分哈希槽
  • 每个Key通过CRC16校验后对16384取余来决定放置哪个哈希槽,通过这个值,去找到对应的插槽所对应的节点,然后直接自动跳转到这个对应的节点上进行存取操作
以3个节点组成的集群为例
节点A包含0到5460号哈希槽
节点B包含5461到10922号哈希槽
节点C包含10923到16383号哈希槽
Redis集群的主从复制模型
集群中具有A、B、C三个节点,如果节点B失败了,整个集群就会因缺少5461-10922这个范围的槽而不可以用。
为每个节点添加一个从节点A1、B1、C1整个集群便有三个Master节点和三个slave节点组成,在节点B失败后,集群选举B1位为的主节点继续
服务。当B和B1都失败后,集群将不可用

4.搭建Redis集群模式

redis的集群一般需要6个节点,3主3从。
先在六台服务器上安装redis数据库

主机操作系统IP:端口安装包
Master1CentOS7192.168.235.10:6371redis-5.0.7.tar.gz
Master2CentOS7192.168.235.20:6371redis-5.0.7.tar.gz
Master3CentOS7192.168.235.30:6371redis-5.0.7.tar.gz
Slave1CentOS7192.168.235.40:6371redis-5.0.7.tar.gz
Slave2CentOS7192.168.235.50:6371redis-5.0.7.tar.gz
Slave3CentOS7192.168.235.60:6371redis-5.0.7.tar.gz

这里使用不同的节点只是想说redis集群模式可以指定端口,不是只能使用6379端口,如果不想改的话也可以全都使用一个端口,这样创建目录和修改配置的时候更方便,所有节点除了监听的ip不一样以外没什么不同。

(1)创建并复制相关文件
所有节点rticle/details/114292302

(2)修改配置文件,开启群集功能

所有节点
先设置一个节点

cd /etc/redis/redis-cluster/redis6371
vim redis.conf
#69行,修改bind项,监听自己的IP
bind 192.168.235.10
#88行,修改,关闭保护模式
protected-mode no
#92行,修改,redis监听端口
port 6371
#136行,以独立进程启动
daemonize yes
#699行,修改,开启AOF持久化
appendonly yes
#832行,取消注释,开启群集功能
cluster-enabled yes
#840行,取消注释,修改,群集名称文件设置
cluster-config-file nodes-6371.conf
#846行,取消注释,群集超时时间设置
cluster-node-timeout 15000

在这个节点上配置好的文件复制过去

scp /etc/redis/redis-cluster/redis6371/redis.conf root@192.168.235.20:/etc/redis/redis-cluster/redis6372/redis.conf
scp /etc/redis/redis-cluster/redis6371/redis.conf root@192.168.235.30:/etc/redis/redis-cluster/redis6373/redis.conf
scp /etc/redis/redis-cluster/redis6371/redis.conf root@192.168.235.40:/etc/redis/redis-cluster/redis6374/redis.conf
scp /etc/redis/redis-cluster/redis6371/redis.conf root@192.168.235.50:/etc/redis/redis-cluster/redis6375/redis.conf
scp /etc/redis/redis-cluster/redis6371/redis.conf root@192.168.235.60:/etc/redis/redis-cluster/redis6376/redis.conf

其他服务器上

cd /etc/redis/redis-cluster/redis6372
vim redis.conf
#69行,修改bind项,监听自己的IP
bind 192.168.163.12
#92行,修改,redis监听端口
port 6372
#840行,取消注释,修改,群集名称文件设置
cluster-config-file nodes-6372.conf

(3)启动redis节点

所有节点启动

#每台服务器进入对应的文件中,执行命令
cd /etc/redis/redis-cluster/redis6371/
redis-server redis.conf #启动服务

ps -ef |  grep redis #查看服务是否启动成功

(4)启动集群

redis-cli --cluster create 192.168.235.10:6371 
192.168.235.20:6372 
192.168.235.30:6373 
192.168.235.40:6374
192.168.235.50:6375 192.168.235.60:6376 --cluster-replicas 1

#启动集群 前三台是主后面是从
#下面是主从对应关系

(5)测试集群

redis-cli -h 192.168.235.10 -p 6371 -c   #加-c参数,节点之间就可以互相跳转	
cluster slots			#查看节点的哈希槽编号范围
set test lisi  #设置一个test键
cluster keyslot test	#查看name键的槽编号

get test #获取test的值

quit
redis-cli -h 192.168.235.50 -p 6375 -c #推出,登录到15数据库上
key * #没有数据
get test #获取test键值,跳转到20数据库上,获取到值
2024最新Redis 哨兵模式搭建详解 在现代应用程序中,数据的高可用性和可靠性至关重要。Redis 的哨兵模式(Sentinel)是实现高可用性的一个强大解决方案,它不仅仅提供高可用性,还能进行实时监控及故障自动恢复。这篇文章将深入探讨 Redis 哨兵模式的工作原理,详细的搭建步骤,以及各项配置的深度解析,旨在帮助读者全面掌握 Redis 哨兵架构。 阅读详情

相关推荐

Redis 哨兵模式

当我们的主服务器宕机后,要手动的去切换主从模式,这样的人工干预,费事费力,还会造成一段时间我们的服务不能使用。所有我们要使用哨兵模式来解决这一问题。哨兵是对Redis的系统的运行情况的监控,它是一个独立进程,功能有二个:监控主机Redis和从机Redis是否运行正常;主机Redis出现故障后自动将从机转化为主机;

Rio520的博客 6551

如何解决redis单点故障——redis的主从架构和哨兵模式配置

一、redis主从和哨兵模式简介 采用主从架构的模式,可以实现当主redis进行数据存储操作时,从redis也同样进行存储,实现了数据的备份;再结合哨兵模式,监控所有redis节点,当主redis宕机后,如果超过一半数量的哨兵都检测到主宕机,就会在从redis中选举出新的主redis,于是从redis切换为新的主服务器,继续提供redis服务,解决了单点故障的问题。 二、哨兵模式原理和作用 哨兵模式原理 哨兵(sentinel) 是一个分布式系统,用于对主从结构中的每台服务器进行监控,当出现故障时通过投票机

qq_41786285的博客 1529

Information Fusion投稿避坑指南:从初稿到返修的完整流程解析(附模板下载)

本文详细解析了向Information Fusion投稿的全流程,从初稿准备到返修策略,涵盖了22个关键细节。特别强调了投稿前的隐形门槛、LaTeX模板的字体陷阱、图表规范要求以及返修回复的进阶技巧,帮助研究者避免常见错误,提升稿件接受率。附有实用模板下载,助力学术写作效率提升。

tgb34567890的博客 1419

(分布式系统专栏)如何解决单点故障?哨兵模式&主从复制与raft一致性协议详解

是一种主从复制架构中的监控与故障转移机制,最早由 Redis 提出,并且成为 Redis 高可用性的关键部分。哨兵模式在分布式系统中,尤其是数据持久化系统中,用于保证高可用性和自动故障恢复。哨兵模式的核心目的是监控主节点(master)和从节点(slave),如果主节点发生故障,哨兵会自动选举一个新的主节点,并将故障的主节点从系统中剔除。:哨兵不断地监控主节点和从节点的状态。它会定期向主节点和从节点发送心跳(ping)信号,以检查它们的存活状态。如果哨兵发现主节点或者从节点不可达,它会认为该节点出现故障。

hz_uzi的博客 1179

Nettrace 源码分析

文章介绍:本文将围绕腾讯开源项目nettrace工具中数据采集,数据处理,数据分析三个模块深入源码分析其实现细节

abobob的博客 989

KTransformers安装笔记 利用docker安装KTransformers

KTransformers安装笔记 利用docker安装KTransformers

guoqingru0311的博客 1559

redis--主从复制,哨兵模式,Redis Cluster模式

redis--主从复制,哨兵模式,Redis Cluster模式

Fish_1112的博客 1227

AutoLisp文件(.lsp)从编写到加载运行:一份给CAD新手的避坑指南

本文为CAD新手提供了一份AutoLisp文件(.lsp)从编写到加载运行的完整指南,涵盖编写环境配置、文件加载流程、调试技巧及工程化实践建议。通过详细的步骤和常见错误解决方案,帮助用户避免常见陷阱,提升AutoLisp脚本的开发效率和应用效果。

weixin_29228203的博客 890

Redis哨兵模式

redis哨兵

qq_45676901的博客 1127

安装Anaconda和Labelme的教程

1 登录Anaconda官网,选择Download https://www.anaconda.com/distribution/ 2 选择你想下载的Python版本,选择你的操作系统和位数,然后点击Download按钮就开始下载了 3 开始安装 下面两个框框都勾选 点击next,等待安装成功 打开Anaconda Navigator 点击红色圈圈的按钮 在cmd中输入 (1)创建虚拟环境 conda create -n labelme python=3.6 (2)激活虚拟环境 conda activa

qq_42178122的博客 3807

【安全设备篇】HVV面试专题

还有就是这个可能是被访问的这个内网系统,本身业务系统存在业务逻辑问题,因为内网所布置的很多业务系统往往不会考虑一些安全性问题,比如在正常的业务逻辑请求中直接带了sql语句,就会触发设备规则产生告警,这一类是属于误报,然后会将此告警上报给研判人员,需要研判组专家和甲方客户确认下是否是该系统存在此业务逻辑问题,并且需要确认告警的源ip在此告警的时间段附近有没有进行操作过。天眼日志分析主要基于系统和应用程序的日志数据来识别安全威胁,而威胁感知则通过收集和分析多种来源的情报信息。理解威胁的性质和威胁背后的原理。

大河之犬的博客 7923

redis集群模式--解决redis单点故障

redis单机版,出现单机故障后,导致redis无法使用,如果程序使用redis,间接导致程序出错。

weixin_43766390的博客 2558

OSG三维渲染引擎编程学习之一百:“第十一章:OSG粒子” 之 “11.1 粒子的主要模块”

OSG;三维渲染引擎编程学习;第十一章:OSG粒子;11.1 粒子的主要模块

LuckyHanMo的博客 795

解决redis单点故障——redis的主从架构和哨兵模式配置

Redis主从模式配置 环境设置 Redis安装 所有服务器上安装,在master上演示 [root@master ~]# tar zxf redis-5.0.7.tar.gz [root@master ~]# cd redis-5.0.7/ [root@master redis-5.0.7]# make -j2 [root@master redis-5.0.7]# make PREFIX=/usr/local/redis install [root@master redis-5.0.7]# ln -s

xwy9526的博客 402

VTK 显示大量点云数据及交互(点云拾取、着色、测量等)功能

VTK (Visualization Toolkit) 是一个强大的开源可视化库,非常适合处理点云数据。下面将介绍如何使用 VTK 显示大量点云数据,并实现点云拾取、着色、测量等功能。

深之JohnChen的专栏 1992

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

【Redis三种集群方案】

在早期的 Redis 版本中,Redis 是一个​​单机内存数据库​​,所有数据存储在单个节点上。✅ ​​数据冗余(Data Redundancy)​​。

m0_52150489的博客 411

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

redis 客户端断开连接_redis集群架构的演进之路

一、redis的主从架构一开始我们的业务量不大时,一个redis节点就能满足我们的业务需求,当我们的业务量不断上涨,单台redis节点已经不能满足我们的业务需求时,这个时候redis的主从结构就出现了。redis主从结构解决的问题:redis可以部署为一个主节点,多个从节点,从节点提供读服务,主节点提供写服务,将我们的业务进行读写分离。redis如何进行主从同步,其第一次进行主从同时时,...

weixin_33060753的博客 335

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

【Redis】Redis主从架构和哨兵模式

文章目录主从架构为什么需要Redis主从架构?搭建主从架构(一主二从)主从一致原理复制积压缓冲区全量复制增量复制在主从架构中出现了宕机的情况为什么主从库之间的复制不使用 AOF?哨兵模式哨兵节点通信主观下线和客观下线选举规则哨兵模式搭建 主从架构 为什么需要Redis主从架构? Redis 单点架构有以下问题 造成服务雪崩:高并发场景下,Redis 单点故障了,导致请求到 Redis 后都返回错误,或者请求都到数据库了,造成服务雪崩,这是不能接受的。 不能进行快速转移:线上系统,Redis 单点故障了

BookSea的博客 5091

【深入学习Redis丨第六篇】Redis哨兵模式与操作详解

当我们的主服务器宕机后,要手动的去切换主从模式,这样的人工干预,费事费力,还会造成一段时间我们的服务不能使用。所有我们要使用哨兵模式来解决这一问题。哨兵是对Redis的系统的运行情况的监控,它是一个独立进程,功能有二个:监控主机Redis和从机Redis是否运行正常;主机Redis出现故障后自动将从机转化为主机;

陈橘又青的博客 3万+

Redis的哨兵模式原理详解

Redis哨兵模式详解:保障高可用的分布式应急机制 Redis哨兵模式是一个分布式系统,用于监控Redis主从架构的状态,并在主节点故障时自动进行故障转移。它通过定期PING命令检测节点状态,当足够哨兵确认主节点故障后,会选举新主节点并重新配置系统。哨兵模式具有监控、自动故障转移和客户端透明等特点,通常部署3-5个哨兵节点以确保高可用性。文章详细介绍了哨兵的工作原理、配置方法、Java客户端连接示例,以及内部通信机制和选举算法,并提供了最佳实践和局限性分析。哨兵模式虽能保障高可用,但不解决数据分区问题,所有

从不水文,坚持创作,加油 7988

springboot 开发使用redis之 未使用哨兵模式 可能问题和解决办法

在Spring Boot应用中使用Redis时,如果未使用哨兵模式,可能会遇到一些问题。哨兵模式用于监控和管理Redis实例,提高了高可用性和故障恢复能力。以上是一些可能在Spring Boot中使用Redis时未使用哨兵模式可能遇到的问题以及相应的解决办法。在生产环境中,为了确保高可用性和故障恢复能力,建议考虑使用哨兵模式或者搭建Redis集群。

Java开源程序猿 1827

Redis哨兵模式:什么是哨兵模式、哨兵模式的优缺点、哨兵模式的主观下线和客观下线、投票选举、Redis 哨兵模式搭建

总结:哨兵模式在主从复制模式的基础上实现了自动故障转移,提高了系统的高可用性。然而,它仍然无法实现数据分片。如果需要实现数据分片和负载均衡,可以考虑使用Cluster模式。高可用性要求较高的场景:通过自动故障转移,确保服务的持续可用。数据备份和容灾恢复:在主从复制的基础上,提供自动故障转移功能。具有主从复制模式的所有优点,如数据冗余和读写分离。依然无法实现数据分片,受单节点内存限制。重要的配置看截图,ip地址以及格式请注意。自动故障转移,提高系统的高可用性。配置和管理相对复杂。混合持久化模式的开启。

一码归一码@ 6895

Redis的主从模式和哨兵模式

在分布式系统架构中,数据的高可用性与容灾能力是保障业务连续性的核心要素。Redis作为高性能的内存数据库,其主从复制(Master-Slave Replication)和哨兵模式(Sentinel)是实现数据冗余、故障恢复与高可用的关键机制。主从模式通过数据复制实现读写分离与负载均衡,而哨兵模式则在主从架构基础上,进一步提供自动化的故障检测与主节点切换能力,从而避免单点故障引发的服务中断。

2301_78506180的博客 926

Redis集群的哨兵模式

​​主节点(Master)​​:负责处理读写请求,数据变更后同步到从节点(Slave/Replica)。​​从节点(Slave)​​:只读,通过全量复制(首次连接时)和增量复制(持续同步)保持与主节点数据一致。但主从复制存在致命缺陷:​​主节点故障时,需人工介入将某个从节点提升为新主节点,并调整其他从节点指向新主节点​​。这在高并发场景(如电商大促)中会导致服务中断,无法满足可用性要求。哨兵模式是Redis官方推出的​​分布式高可用解决方案​。

2303_76837797的博客 1241

Redis哨兵模式与操作详解

Redis哨兵模式是一种用于实现Redis高可用性的解决方案。在哨兵模式下,有一组专门的进程(即哨兵进程)负责监控Redis集群中的主节点和从节点,并在发现故障时自动进行故障转移,以保证Redis集群的持续运行。哨兵进程通过配置文件或命令行参数指定要监控的主节点的信息,并进行连接。它们周期性地发送PING命令来检测主节点和从节点的状态。当哨兵进程发现主节点不可用时,会进行投票来决定是否将某个从节点提升为新的主节点,并通过消息订阅模式通知其他从节点切换到新的主节点上,从而实现故障转移。

hong161688的博客 1462

redis搭建哨兵模式(哨兵模式原理)

哨兵模式核心还是主从复制,只不过在相对于主从模式在主节点宕机导致不可写的情况下,多了一个竞选机制:在所有的从节点竞选出新的主节点。每一个哨兵都是一个独立的sentinel进程,作为进程,它会独立运行。 当master挂掉之后,哨兵会自动从slave中选一个作为master,若master重新启动,master则会转化为现有的master下的一个slave,当slave切换时,会通过发布订阅方式,将slave所对应的master更改。

MssGuo的博客 9154
上一篇: Redis数值类型详解
下一篇: 如何实现rsync远程同步(配置rsync下行同步、rsync+inotity实时同步)
糖果剑客
博客等级 码龄6年 97粉丝 80原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值