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

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.dtcms.com/a/280427.html

相关文章:

  • 【PTA数据结构 | C语言版】根据前序序列重构二叉树
  • npm install failed如何办?
  • 【10】MFC入门到精通——MFC 创建向导对话框、属性页类、属性表类、代码
  • centos 安装java 环境
  • FreeRTOS学习笔记——总览
  • 【Docker基础】Dockerfile构建与运行流程完全指南:从原理到实践优化
  • CentOS 8-BClinux8.2更换为阿里云镜像源:保姆级教程
  • 【第二章自定义功能菜单_MenuItemAttribute_顶部菜单栏(本章进度1/7)】
  • Rust基础-part5-引用
  • 【jvm|基本原理】第四天
  • 游戏行业中的恶梦:不断升级的DDoS攻击
  • 深入理解C++11 std::iota:从原理到实践
  • UDP和TCP的主要区别是什么
  • 17. 什么是 webSocket ?
  • 力扣 hot100 Day45
  • ZYNQ千兆光通信实战:Tri Mode Ethernet MAC深度解析
  • Keepalived双机热备概述
  • 基于深度学习的LSTM、GRU对大数据交通流量分析与预测的研究
  • omniparser v2 本地部署及制作docker镜像(20250715)
  • 从浏览器到服务器:TCP 段的网络传输之旅
  • 设计模式二:策略模式 (Strategy Pattern)
  • 云计算如何提高企业的数据安全性和隐私保护
  • 我会秘书长杨添天带队赴杭州融量农业发展有限公司考察调研
  • NQTT-基础知识
  • CSS :root伪类详解:实现动态主题切换的关键所在
  • 7.15 Java基础|大小写转换、数组、ArrayList类
  • 基于Langchain4j开发AI编程助手
  • Python_1
  • 高等数学强化——导学
  • 【Python练习】044. 编写一个函数,实现快速排序算法