两张流程图带你学会SpringBoot整合Redis主从复制、哨兵模式并搞懂其工作流程

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: 两张流程图带你学会SpringBoot整合Redis主从复制、哨兵模式并搞懂其工作流程

🌟整合说明


架构采用单机部署一主二从三哨兵的模式,以下为节点信息和相关架构图。


节点信息


节点名称 IP地址 端口号
master 49.233.48.98 6379
slave1 49.233.48.98 6380
slave2 49.233.48.98 6381
sentinel1 49.233.48.98 26379
sentinel2 49.233.48.98 26380
sentinel3 49.233.48.98 26381


主从复制+哨兵模式架构图

fb985db0af22431b96c16ebb70c51526.png

工作流程图:

c45628a529ef402abc8607c48441bdd0.jpg

工作流程描述


  1. 创建主节点:首先,配置一个Redis实例作为主节点,它负责接收写操作(如添加、更新、删除等),将数据同步到从节点,并向哨兵节点报告自己的状态。
  2. 启动从节点:在其他Redis实例上配置为从节点,它们将复制主节点的数据,并处理读操作。从节点会连接到主节点,并通过发送SYNC命令来进行全量数据同步。
  3. 哨兵节点监控:启动一组哨兵节点,它们会定期检查主节点和从节点的状态。哨兵节点会发送PING命令来检测节点是否可达,并获取节点信息。
  4. 主节点故障检测:当哨兵节点无法与主节点通信时,会将主节点标记为下线,并开始选举过程。选举的目的是从从节点中选择一个新的主节点。
  5. 选举新的主节点:哨兵发起选举,通过选举算法(如投票机制)从从节点中选出一个新的主节点,然后将其他从节点切换到新的主节点。
  6. 更新配置信息:一旦新的主节点选举成功,哨兵会将新的主节点信息通知给所有从节点,并更新他们的配置。
  7. 重新同步数据:当从节点收到新的主节点信息后,它会断开与之前主节点的连接,并与新的主节点重新建立连接。从节点通过发送部分重同步命令(PSYNC)来获取丢失的数据,并与主节点保持同步。
  8. 故障转移完成:一旦从节点成功与新的主节点同步完成,故障转移过程就完成了。现在,系统中有一个新的主节点和一些从节点,它们继续处理读写请求,并保持主从复制+哨兵模式的工作状态。

🌟主从复制搭建


有关于主从复制的搭建,可以前往专栏《Redis从头学》中的【Redis从头学-12】Redis主从复制和读写分离的多种部署方式解析(普通方式、Docker搭建方式、Docker-Compose搭建方式)。此文为大家解读了什么是主从复制和读写分离并提供了三种主从搭建的方式。


🌟哨兵模式搭建


有关于哨兵模式搭建,可以前往专栏《Redis从头学》中的【Redis从头学-13】Redis哨兵模式解析以及搭建指南。此文为大家解读了什么是哨兵模式并提供了搭建哨兵模式的全过程以及易错点。


🌟整合Redis


有关于SpringBoot整合Redis可以查看本专栏上一篇文章一张思维导图带你学会SpringBoot整合Redis。此文章提供了整合Redis的全过程。


🌟application.properties


此文章基于上一篇文章一张思维导图带你学会SpringBoot整合Redis进行修改。无需配置host和port。


#spring.redis.host=49.233.48.98
#spring.redis.port=6379
spring.redis.password=daencode@top
#哨兵监控的主节点名称
spring.redis.sentinel.master=mymaster
#哨兵节点信息
spring.redis.sentinel.nodes=49.233.48.98:26379,49.233.48.98:26380,49.233.48.98:26381
spring.redis.sentinel.password=daencode@top

🌟写在最后


有关于两张流程图带你学会SpringBoot整合Redis主从复制、哨兵模式并搞懂其工作流程到此就结束了。感谢大家的阅读,希望大家在评论区对此部分内容散发讨论,便于学到更多的知识。


目录
相关文章
|
2月前
|
NoSQL Java 网络安全
SpringBoot启动时连接Redis报错:ERR This instance has cluster support disabled - 如何解决?
通过以上步骤一般可以解决由于配置不匹配造成的连接错误。在调试问题时,一定要确保服务端和客户端的Redis配置保持同步一致。这能够确保SpringBoot应用顺利连接到正确配置的Redis服务,无论是单机模式还是集群模式。
250 5
|
2月前
|
XML JSON Java
【SpringBoot(三)】从请求到响应再到视图解析与模板引擎,本文带你领悟SpringBoot请求接收全流程!
Springboot专栏第三章,从请求的接收到视图解析,再到thymeleaf模板引擎的使用! 本文带你领悟SpringBoot请求接收到渲染的使用全流程!
233 3
|
3月前
|
存储 监控 NoSQL
Redis高可用架构全解析:从主从复制到集群方案
Redis高可用确保服务持续稳定,避免单点故障导致数据丢失或业务中断。通过主从复制实现数据冗余,哨兵模式支持自动故障转移,Cluster集群则提供分布式数据分片与水平扩展,三者层层递进,保障读写分离、容灾切换与大规模数据存储,构建高性能、高可靠的Redis架构体系。
|
3月前
|
NoSQL Java 调度
分布式锁与分布式锁使用 Redis 和 Spring Boot 进行调度锁(不带 ShedLock)
分布式锁是分布式系统中用于同步多节点访问共享资源的机制,防止并发操作带来的冲突。本文介绍了基于Spring Boot和Redis实现分布式锁的技术方案,涵盖锁的获取与释放、Redis配置、服务调度及多实例运行等内容,通过Docker Compose搭建环境,验证了锁的有效性与互斥特性。
242 0
分布式锁与分布式锁使用 Redis 和 Spring Boot 进行调度锁(不带 ShedLock)
|
3月前
|
存储 负载均衡 NoSQL
Redis主从复制
在分布式系统中,为解决单点故障和提升性能,常采用Redis主从复制架构。通过将数据复制到多个从节点,实现读写分离、负载均衡及高可用性,同时支持多种拓扑结构以适应不同场景需求。
|
5月前
|
负载均衡 NoSQL Redis
【赵渝强老师】Redis的主从复制集群
Redis主从复制是指将一台Redis服务器的数据复制到其他Redis服务器,实现数据热备份、故障恢复、负载均衡及高可用架构的基础。主节点负责写操作,从节点同步数据并可提供读服务,提升并发处理能力。
162 5
|
11月前
|
XML Java 应用服务中间件
SpringBoot项目打war包流程
本文介绍了将Spring Boot项目改造为WAR包并部署到外部Tomcat服务器的步骤。主要内容包括:1) 修改pom.xml中的打包方式为WAR;2) 排除Spring Boot内置的Tomcat依赖;3) 添加Servlet API依赖;4) 改造启动类以支持WAR部署;5) 打包和部署。通过这些步骤,可以轻松地将Spring Boot应用转换为适合外部Tomcat服务器的WAR包。
637 64
SpringBoot项目打war包流程
|
6月前
|
机器学习/深度学习 数据采集 人机交互
springboot+redis互联网医院智能导诊系统源码,基于医疗大模型、知识图谱、人机交互方式实现
智能导诊系统基于医疗大模型、知识图谱与人机交互技术,解决患者“知症不知病”“挂错号”等问题。通过多模态交互(语音、文字、图片等)收集病情信息,结合医学知识图谱和深度推理,实现精准的科室推荐和分级诊疗引导。系统支持基于规则模板和数据模型两种开发原理:前者依赖人工设定症状-科室规则,后者通过机器学习或深度学习分析问诊数据。其特点包括快速病情收集、智能病症关联推理、最佳就医推荐、分级导流以及与院内平台联动,提升患者就诊效率和服务体验。技术架构采用 SpringBoot+Redis+MyBatis Plus+MySQL+RocketMQ,确保高效稳定运行。
458 0
|
9月前
|
Java
SpringBoot启动流程
springboot项目在启动的时候, 首先会执行启动引导类里面的SpringApplication.run(AdminApplication.class, args)方法 这个run方法主要做的事情可以分为三个部分 : 第一部分进行SpringApplication的初始化模块,配置一些基本的环境变量、资源、构造器、监听器 第二部分实现了应用具体的启动方案,包括启动流程的监听模块、加载配置环境模块、及核心的创建上下文环境模块 第三部分是自动化配置模块,该模块作为springboot自动配置核心,在后面的分析中会详细讨论
|
10月前
|
Java 数据库 开发者
详细介绍SpringBoot启动流程及配置类解析原理
通过对 Spring Boot 启动流程及配置类解析原理的深入分析,我们可以看到 Spring Boot 在启动时的灵活性和可扩展性。理解这些机制不仅有助于开发者更好地使用 Spring Boot 进行应用开发,还能够在面对问题时,迅速定位和解决问题。希望本文能为您在 Spring Boot 开发过程中提供有效的指导和帮助。
1248 12