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

Redis四种模式在Spring Boot框架下的配置

1. 单机模式

application.properties 配置:
spring.redis.host=127.0.0.1
spring.redis.port=6379
spring.redis.password=yourpassword
  • spring.redis.host: 该配置指定 Redis 服务器的主机地址。在单机模式下,通常是本地 Redis 实例(127.0.0.1)。
  • spring.redis.port: 该配置指定 Redis 实例的端口号,默认情况下 Redis 使用的是 6379 端口。
  • spring.redis.password: 如果 Redis 配置了密码,您可以在此处指定密码。否则,可以省略此项。

作用:
这些配置会自动被 Spring Boot 中的 RedisTemplate 使用,以连接到 Redis 单机实例。当您启动应用时,Spring Boot 会自动根据这些配置初始化一个 RedisTemplate 实例来与 Redis 交互。

RedissonClient 配置:
 @Beanpublic RedissonClient redissonClient() {try {Config config = new Config();config.useSingleServer().setAddress("redis://127.0.0.1:6379");return Redisson.create(config);} catch (RedisConnectionException e) {throw new RuntimeException( "redis配置错误,请检查redis配置");}}
  • useSingleServer(): 这是 Redisson 中用于单机模式的配置方法,它表明 Redisson 将连接到一个单独的 Redis 实例。
  • setAddress("redis://127.0.0.1:6379"): 设置 Redis 服务器的地址。前缀 redis:// 用来指定协议,后面是 Redis 的主机和端口。
  • setPassword("yourpassword"): 配置 Redis 密码,如果 Redis 设置了密码,那么必须在此指定。

作用:
Redisson 使用这种方式连接到 Redis 单机实例,与 RedisTemplate 配置类似,但是在 Redisson 中,您需要手动创建一个 RedissonClient 实例,并指定连接的配置。


2. 主从模式

application.properties 配置:

Spring Boot 默认不支持 Redis 主从模式的自动配置。您需要手动配置 LettuceConnectionFactory,在 RedisTemplate 中使用。

示例配置:

spring.redis.master=master
spring.redis.sentinel.nodes=127.0.0.1:26379,127.0.0.2:26379
spring.redis.password=yourpassword
  • spring.redis.master: 该配置指定 Redis 哨兵模式中的主节点名称(通常为 mymaster)。
  • spring.redis.sentinel.nodes: 这是 Redis 哨兵节点的地址列表,用逗号分隔。每个地址指定了一个哨兵节点的位置,通常是多个冗余的 Redis 哨兵节点。
  • spring.redis.password: 如果 Redis 设置了密码,您可以在此处指定。

作用:
通过这些配置,Spring Boot 可以配置连接到 Redis 哨兵,并通过哨兵节点动态管理 Redis 的主从切换,确保高可用性。

RedissonClient 配置:
@Bean
public RedissonClient redissonClient() {Config config = new Config();config.useMasterSlaveServers().setMasterAddress("redis://127.0.0.1:6379").addSlaveAddress("redis://127.0.0.2:6379", "redis://127.0.0.3:6379").setPassword("yourpassword");return Redisson.create(config);
}
  • useMasterSlaveServers(): 这是 Redisson 中用于主从模式的配置方法。它会指定 Redis 主节点的地址(setMasterAddress)和从节点的地址(addSlaveAddress)。Redisson 会在主节点不可用时自动切换到从节点。
  • setMasterAddress("redis://127.0.0.1:6379"): 设置主节点的地址。
  • addSlaveAddress("redis://127.0.0.2:6379", "redis://127.0.0.3:6379"): 设置从节点的地址。您可以添加多个从节点以实现负载均衡。
  • setPassword("yourpassword"): 设置 Redis 密码。

作用:
Redisson 会使用主从模式连接到 Redis,自动处理主从切换,并提供高可用性。与 RedisTemplate 配置相比,RedissonClient 提供了更强大的分布式功能,例如分布式锁和队列等。


3. 哨兵模式

application.properties 配置:
spring.redis.sentinel.master=mymaster
spring.redis.sentinel.nodes=127.0.0.1:26379,127.0.0.2:26379
spring.redis.password=yourpassword
  • spring.redis.sentinel.master: 该配置指定 Redis 哨兵模式中的主节点名称。
  • spring.redis.sentinel.nodes: 配置 Redis 哨兵的节点列表。每个哨兵节点的 IP 地址和端口号,Spring Boot 会根据这个配置来发现主从节点,并管理主从切换。
  • spring.redis.password: 如果 Redis 设置了密码,则在此处指定。

作用:
Spring Boot 会根据配置自动连接到 Redis 哨兵,并使用动态的主从切换来实现高可用性。

RedissonClient 配置:
@Bean
public RedissonClient redissonClient() {Config config = new Config();config.useSentinelServers().setMasterName("mymaster").addSentinelAddress("redis://127.0.0.1:26379", "redis://127.0.0.2:26379").setPassword("yourpassword");return Redisson.create(config);
}
  • useSentinelServers(): 配置 Redisson 使用哨兵模式进行连接。它会自动从哨兵节点获取 Redis 主节点的信息,并进行主从切换。
  • setMasterName("mymaster"): 指定主节点名称(和 Spring Boot 配置中的 spring.redis.sentinel.master 一致)。
  • addSentinelAddress("redis://127.0.0.1:26379", "redis://127.0.0.2:26379"): 设置 Redis 哨兵节点的地址。
  • setPassword("yourpassword"): 设置 Redis 密码。

作用:
Redisson 使用 Redis 哨兵模式来提供高可用性,支持自动的故障切换和重新连接。


4. 集群模式

application.properties 配置:
spring.redis.cluster.nodes=127.0.0.1:6379,127.0.0.2:6379,127.0.0.3:6379
spring.redis.password=yourpassword
  • spring.redis.cluster.nodes: 配置 Redis 集群的节点列表。每个节点都是 Redis 集群的一部分,集群中的节点会协同工作提供分片和高可用性。
  • spring.redis.password: 如果 Redis 集群配置了密码,您可以在此处指定。

作用:
Spring Boot 会根据配置自动连接到 Redis 集群,并提供分片和高可用性支持。通过 RedisClusterConfiguration,Spring Boot 能够管理 Redis 集群的连接。

RedissonClient 配置:
@Bean
public RedissonClient redissonClient() {Config config = new Config();config.useClusterServers().addNodeAddress("redis://127.0.0.1:6379", "redis://127.0.0.2:6379", "redis://127.0.0.3:6379").setPassword("yourpassword");return Redisson.create(config);
}
  • useClusterServers(): 配置 Redisson 使用 Redis 集群模式。它会自动发现 Redis 集群的节点,并连接到集群中的各个节点。
  • addNodeAddress("redis://127.0.0.1:6379", "redis://127.0.0.2:6379", "redis://127.0.0.3:6379"): 设置 Redis 集群节点的地址。通常配置多个节点地址以支持 Redis 集群中的所有分片。
  • setPassword("yourpassword"): 配置 Redis 集群的密码。

作用:
Redisson 使用 Redis 集群模式提供分片和高可用性支持,可以处理更大的数据量和更高的负载。


总结

部署模式RedisTemplate 配置RedissonClient 配置
单机模式使用 spring.redis.hostspring.redis.port 配置使用 useSingleServer() 配置单机 Redis 地址
主从模式默认不支持,需通过 LettuceConnectionFactory 手动配置使用 useMasterSlaveServers() 配置主从节点地址
哨兵模式使用 spring.redis.sentinel 配置主从节点使用 useSentinelServers() 配置哨兵节点和主节点
集群模式使用 spring.redis.cluster.nodes 配置集群节点使用 useClusterServers() 配置集群节点地址

相关文章:

Redis四种模式在Spring Boot框架下的配置

1. 单机模式 application.properties 配置: spring.redis.host127.0.0.1 spring.redis.port6379 spring.redis.passwordyourpasswordspring.redis.host: 该配置指定 Redis 服务器的主机地址。在单机模式下,通常是本地 Redis 实例(127.0.0.1…...

Golang的性能监控指标

Golang的性能监控指标 一、介绍 是一种高性能的编程语言,因其并发模型和内建的性能监控工具而备受开发者青睐。在实际开发中,我们需要了解一些重要的性能监控指标,以便及时发现和解决性能问题。本文将介绍Golang中常用的性能监控指标&#xf…...

基于GAN和DenseNett组合的调制信号分类网络(源码)

(需要源码请私信或评论) 生成对抗网络(GAN)原理 生成对抗网络(GAN)是一种革命性的深度学习模型,在无监督学习领域取得了显著进展。其核心思想基于 二人零和博弈 ,通过生成模型和判别模型的相互竞争实现高质量的数据合成。GAN由Ian Goodfellow等人于2014年首次提出,随后在图…...

uniapp 项目基础搭建(vue2)

一 .创建项目 创建项目可以通过工具创建,也可以通过脚手架下载 1.通过工具创建 2.通过脚手架下载 安装脚手架 ​​npm install -g vue/cli 下载项目模板 vue create -p dcloudio/uni-preset-vue 项目名称 二. 下载相关依赖 1. 项目默认是没有package.json文件的&…...

中关村科金外呼机器人智能沟通破解营销难题

当今,传统的营销方式在效率、成本控制、客户管理等方面逐渐显现出局限性,难以满足现代企业的需求。如何提升营销效率、降低运营成本、有效管理客户会员,成为企业的难题。中关村科金外呼机器人通过智能化沟通技术,为企业提供了一站…...

【Linux】处理用户输入

一、基本介绍 1、如何传递参数 向shell脚本传递数据的最基本方法就是通过命令行参数。如下,这条命令会向test.sh脚本传递10和20这两个参数。 ./test.sh 10 20 2、如何读取参数 bash shell会将所有的命令行参数都指派给称作位置参数(positional parame…...

flask后端开发(1):第一个Flask项目

目录 一、Helloworddebug、host、port的配置 gitcode地址: https://gitcode.com/qq_43920838/flask_project.git 一、Helloword 一般是会创建两个文件夹和app.py app.py from flask import FlaskappFlask(__name__)app.route(/) def hello_world():return Hello…...

Highcharts 饼图:数据可视化利器

Highcharts 饼图:数据可视化利器 引言 在数据可视化的领域中,饼图作为一种经典且直观的图表类型,被广泛应用于各种行业和场景中。Highcharts,作为一个功能强大且易于使用的JavaScript图表库,为我们提供了创建交互式和…...

黑马商城项目—服务注册、服务发现

服务注册 我们把item-service注册到Nacos,步骤如下: 1.引入依赖 在item-service的pom.xml中添加依赖: 2.配置Nacos 在item-service的application.yml中添加nacos地址配置: 3.配置服务实例 为了测试一个服务多个实例的情况,我…...

【ES6复习笔记】Map(14)

概念 Map 是 JavaScript 中的一种数据结构,它允许你存储键值对,并且可以通过键来访问对应的值。在本教程中,我们将学习如何声明、添加、删除、获取和遍历 Map 集合。 ES6 提供了 Map 数据结构。它类似于对象,也是键值对的集合。…...

15-makefile

一、Makefile的概述 1.认识make make 是一个命令,是个可执行程序,用来解析 Makefile 文件的命令;linux 环境下,这个命令存放在 /usr/bin/ 目录下;当用户输入 make 指令时,系统会自动寻找 makefile、Makef…...

yii2 手动添加 phpoffice\phpexcel

1.下载地址:https://github.com/PHPOffice/PHPExcel 2.解压并修改文件名为phpexcel 在yii项目的vendor目录下创建一个文件夹命名为phpoffice 把phpexcel目录放到phpoffic文件夹下 查看vendor\phpoffice\phpexcel目录下会看到这些文件 3.到vendor\composer目录下…...

使用 AI 辅助开发一个开源 IP 信息查询工具:一

本文将分享如何借助当下流行的 AI 工具,一步步完成一个开源项目的开发。 写在前面 在写代码时,总是会遇到一些有趣的机缘巧合。前几天,我在翻看自己之前的开源项目时,又看到了 DDNS 相关的讨论。虽然在 2021 年我写过两篇相对详细的教程&am…...

HNUST-数据分析技术课堂实验

1.要求 1,从下列第一、二、三组实验中各至少选取一个算法进行实验,选修组实验不作强制要求;2,实验过程不限,目标在于锻炼算法实现过程,即可采用C、C、Java、Python(建议)等任意语言编…...

P3456 [POI2007] GRZ-Ridges and Valleys BFS-连通块思想

题目描述 Byteasar loves trekking in the hills. During the hikes he explores all the ridges and valleys in vicinity. Therefore, in order to plan the journey and know how long it will last, he must know the number of ridgesand valleys in the area he is goi…...

WhisperKit: Android 端测试 Whisper -- Android手机(Qualcomm GPU)部署音频大模型

WhisperKit: Android 端测试 Whisper 1.环境需要2.环境构建(1)克隆项目:(2)工具检查(make setup):(3)下载模型(make download-models)(4)Docker中构建环境(ma…...

Clickhouse(Centos)

地址信息 官网地址:Fast Open-Source OLAP DBMS - ClickHouse 下载地址:packages.clickhouse.com/rpm/stable/ 1.clickhouse-client-23.1.3.5.x86_64.rpm 2.clickhouse-common-static-23.1.3.5.x86_64.rpm 3.clickhouse-common-static-dbg-23.1.3.5.x86_…...

Yolo11改进策略:Block改进|使用FastVit的RepMixerBlock改进Yolo11,重参数重构助力Yolo11涨点(全网首发)

文章目录 摘要FastViT:一种使用结构重新参数化的快速混合视觉变换器1、简介2、相关工作3、体系结构3.1、概述3.2、FastViT3.2.1、重新参数化跳过连接3.2.2、线性训练时间过参数化3.2.3、大核卷积4、实验4.1、图像分类4.2、鲁棒性评价4.3、3D Hand网格估计4.4、语义分割和目标检…...

微信小程序-基于Vant Weapp UI 组件库的Area 省市区选择

Area 省市区选择,省市区选择组件通常与 弹出层 组件配合使用。 areaList 格式 areaList 为对象结构,包含 province_list、city_list、county_list 三个 key。 每项以地区码作为 key,省市区名字作为 value。地区码为 6 位数字,前两…...

NIO(New IO)和BIO(Blocking IO)的区别

Java中的NIO(New IO)和BIO(Blocking IO)的区别及NIO的核心组件 Java中的NIO(New IO)和BIO(Blocking IO)是两种不同的网络通信模型,各自具有独特的特性和适用场景。下面将…...

React 第五十五节 Router 中 useAsyncError的使用详解

前言 useAsyncError 是 React Router v6.4 引入的一个钩子,用于处理异步操作(如数据加载)中的错误。下面我将详细解释其用途并提供代码示例。 一、useAsyncError 用途 处理异步错误:捕获在 loader 或 action 中发生的异步错误替…...

Ubuntu系统下交叉编译openssl

一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机:Ubuntu 20.04.6 LTSHost:ARM32位交叉编译器:arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...

云计算——弹性云计算器(ECS)

弹性云服务器:ECS 概述 云计算重构了ICT系统,云计算平台厂商推出使得厂家能够主要关注应用管理而非平台管理的云平台,包含如下主要概念。 ECS(Elastic Cloud Server):即弹性云服务器,是云计算…...

模型参数、模型存储精度、参数与显存

模型参数量衡量单位 M:百万(Million) B:十亿(Billion) 1 B 1000 M 1B 1000M 1B1000M 参数存储精度 模型参数是固定的,但是一个参数所表示多少字节不一定,需要看这个参数以什么…...

深入浅出:JavaScript 中的 `window.crypto.getRandomValues()` 方法

深入浅出:JavaScript 中的 window.crypto.getRandomValues() 方法 在现代 Web 开发中,随机数的生成看似简单,却隐藏着许多玄机。无论是生成密码、加密密钥,还是创建安全令牌,随机数的质量直接关系到系统的安全性。Jav…...

MMaDA: Multimodal Large Diffusion Language Models

CODE : https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA,它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构&#xf…...

在四层代理中还原真实客户端ngx_stream_realip_module

一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡(如 HAProxy、AWS NLB、阿里 SLB)发起上游连接时,将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后,ngx_stream_realip_module 从中提取原始信息…...

江苏艾立泰跨国资源接力:废料变黄金的绿色供应链革命

在华东塑料包装行业面临限塑令深度调整的背景下,江苏艾立泰以一场跨国资源接力的创新实践,重新定义了绿色供应链的边界。 跨国回收网络:废料变黄金的全球棋局 艾立泰在欧洲、东南亚建立再生塑料回收点,将海外废弃包装箱通过标准…...

Nginx server_name 配置说明

Nginx 是一个高性能的反向代理和负载均衡服务器,其核心配置之一是 server 块中的 server_name 指令。server_name 决定了 Nginx 如何根据客户端请求的 Host 头匹配对应的虚拟主机(Virtual Host)。 1. 简介 Nginx 使用 server_name 指令来确定…...

Java-41 深入浅出 Spring - 声明式事务的支持 事务配置 XML模式 XML+注解模式

点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...