当前位置: 首页 > web >正文

SpringBoot 实现 Redis读写分离

RedisTemplate的哨兵模式

在Sentinel集群监管下的Redis主从集群,其节点会因为自动故障转移而发生变化,Redis的客户端必须感知这种变化,及时更新连接信息。Spring的RedisTemplate底层利用lettuce实现了节点的感知和自动切换。

1.在pom文件中引入redis的starter依赖:

  <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency>

2.然后在配置文件application.yml中指定sentinel相关信息:

spring:redis:sentinel:master: mymaster #sentinel中配置的主节点名称(必须和Sentinel中配置一致!!!)nodes:  #配置的各个sentinel节点- 192.168.101.129:27001- 192.168.101.129:27002- 192.168.101.129:27003

3.自定义 Lettuce 客户端的行为配置,配置Redis 读取操作时的 读取策略(ReadFrom)

    @Beanpublic LettuceClientConfigurationBuilderCustomizer configurationBuilderCustomizer(){return new LettuceClientConfigurationBuilderCustomizer() {@Overridepublic void customize(LettuceClientConfiguration.LettuceClientConfigurationBuilder clientConfigurationBuilder) {/*** MASTER:从主节点读取* MASTER_PREFERRED:优先从master节点读取,master不可用才读取replica* REPLICA:从slave(replica)节点读取* REPLICA _PREFERRED:优先从slave(replica)节点读取,所有的slave都不可用才读取master*///配置优先从slave(replica)节点读取,所有的slave都不可用才读取masterclientConfigurationBuilder.readFrom(ReadFrom.REPLICA_PREFERRED);}};}

🧠 ReadFrom 策略详解

枚举值含义
MASTER强制从主节点读取(默认行为)
MASTER_PREFERRED优先从主节点读取,主节点不可用则从副本节点读
REPLICA只从副本节点读取(如果没有可用副本会失败)
REPLICA_PREFERRED优先从副本节点读取,如果副本不可用再从主节点读(你当前使用的策略)
http://www.xdnf.cn/news/15581.html

相关文章:

  • “C21988-谷物烘干机(2D+3D+说明书+运动仿真)8张cad+设计说明书
  • pytorch学习笔记(四)-- TorchVision 物体检测微调教程
  • 常用高频指令总结
  • iOS App 上架工具选型与跨平台开发 iOS 上架流程优化实录
  • 视频HDR技术全解析:从原理到应用的深度探索
  • 【时时三省】(C语言基础)通过指针引用多维数组
  • 视频编码中熵编码之基于上下文的变长编码(Huffman霍夫曼编码和指数哥伦布)
  • 网络编程-epoll模型/udp通信
  • css 边框颜色渐变
  • 【linux V0.11】init/main.c
  • JAVA青企码协会模式系统源码支持微信公众号+微信小程序+H5+APP
  • Spring MVC 执行流程详解:一次请求经历了什么?
  • 基于铸造机床的Canopen转Profinet协议转换网关应用研究
  • 涨停板池,跌停板池,炸板池,次新股池,强势股池数据接口
  • Python命令行计算2的22次方方法
  • 轻松管理多个Go版本:g工具安装与使用
  • keeplived双击热备配置
  • Spring Security 实践及源码学习
  • 如何轻松将音乐从安卓设备传输到安卓设备
  • 504网关超时可能是哪些原因导致?
  • 短剧小程序的「技术革命」:从「粗放生长」到「精准运营」
  • Docker镜像导入、导出操作指南
  • 工业喷涂机器人的革新:艾利特协作机器人引领人机交互新纪元
  • Zookeeper入门安装与使用详解
  • PyTorch 数据加载实战:从 CSV 到图像的全流程解析
  • OpenCV 对数变换函数logTransform()
  • 手提式干粉灭火器检查工作,如何做到可执行、可追溯、可管理?
  • 基于深度学习的LSTM、GRU对大数据交通流量分析与预测的研究
  • 06-C语言:第06天笔记
  • 通过 1Panel MCP 自动部署静态网站