Spring Boot整合Redisson的两种方式

项目场景

Spring Boot整合Redisson的两种方式,方式一直接使用yml配置,方式二创建RedissonConfig配置类。


前言

redisson和redis区别:

  1. Redis是一个开源的内存数据库,支持多种数据类型,如字符串、哈希、列表、集合和有序集合等,常用于缓存、消息队列、计数器、分布式锁和搜索等应用场景。
  2. Redisson则是一个基于Redis实现的Java驻内存数据网格,提供了一系列分布式的Java常用对象和多种锁机制,以及分布式服务,使开发者能更集中于处理业务逻辑。
  3. Redisson不支持字符串操作、排序、事务、管道、分区等Redis特性,但Redisson 提供了许多其他功能,如分布式闭锁、分布式计数器、分布式信号量等。

前提准备

版本:spring boot2.3.1.RELEASE,redisson3.21.1

maven依赖:

<dependency> <groupId>org.redisson</groupId> <artifactId>redisson-spring-boot-starter</artifactId> <version>3.21.1</version> </dependency>

集成方案:

方式一:使用yml配置

1.单节点配置

单节点配置可以兼容redis的配置方式

application.yml

# redis配置 spring: redis: database: 0 host: 127.0.0.1 password: redis@pass port: 6001

或者使用redisson.yml文件的方式

application.yml这里引用了redisson.yml文件

spring: redis: # redisson配置 redisson: file: classpath:redisson.yml

redisson.yml

# 单节点配置 singleServerConfig: # 数据库编号 database: 0 # 节点地址 address: redis://127.0.0.1:6001 # 密码 password: redis@pass

application.yml与redisson.yml在同级,目录结构如下:

2.集群模式配置

集群模式不能兼容redis之前的配置方式

application.yml没变

spring: redis: # redisson配置 redisson: file: classpath:redisson.yml

更改redisson.yml内容

# 集群模式 clusterServersConfig: # 集群节点地址 nodeAddresses: - "redis://127.0.0.1:18001" - "redis://127.0.0.1:18002" - "redis://127.0.0.1:18003" - "redis://127.0.0.1:18004" - "redis://127.0.0.1:18005" - "redis://127.0.0.1:18006" # 密码 password: redis@pass

Redis集群不支持多个数据库的概念,默认只有一个数据库,即db 0,所以这里是没有database这个参数的。


方式二:创建RedissonConfig配置类

配置类已经兼容单节点和集群模式,参数名可以自定义,数据库默认使用db 0。

application.yml

spring: redis: # redisson配置 redisson: # 如果该值为false,系统将不会创建RedissionClient的bean。 enabled: true # mode的可用值为,single/cluster/sentinel/master-slave mode: single # single: 单机模式 # address: redis://localhost:6379 # cluster: 集群模式 # 每个节点逗号分隔,同时每个节点前必须以redis://开头。 # address: redis://localhost:6379,redis://localhost:6378,... # sentinel: # 每个节点逗号分隔,同时每个节点前必须以redis://开头。 # address: redis://localhost:6379,redis://localhost:6378,... # master-slave: # 每个节点逗号分隔,第一个为主节点,其余为从节点。同时每个节点前必须以redis://开头。 # address: redis://localhost:6379,redis://localhost:6378,... address: redis://127.0.0.1:6001 # redis 密码,空可以不填。 password: redis@pass database: 0

RedissonConfig

import org.apache.commons.lang3.StringUtils; import org.redisson.Redisson; import org.redisson.api.RedissonClient; import org.redisson.config.Config; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; /** * Redisson配置类。 */ @Configuration @ConditionalOnProperty(name = "spring.redis.redisson.enabled", havingValue = "true") public class RedissonConfig { @Value("${spring.redis.redisson.mode}") private String mode; /** * 仅仅用于sentinel模式。 */ @Value("${spring.redis.redisson.masterName:}") private String masterName; @Value("${spring.redis.redisson.address}") private String address; @Value("${spring.redis.redisson.password:}") private String password; /** * 数据库默认0 */ @Value("${spring.redis.redisson.database:0}") private Integer database; @Bean public RedissonClient redissonClient() { if (StringUtils.isBlank(password)) { password = null; } Config config = new Config(); if ("single".equals(mode)) { config.useSingleServer() .setDatabase(database) .setPassword(password) .setAddress(address); } else if ("cluster".equals(mode)) { String[] clusterAddresses = address.split(","); config.useClusterServers() //集群模式不支持多个数据库概念,默认db 0 .setPassword(password) .addNodeAddress(clusterAddresses); } else if ("sentinel".equals(mode)) { String[] sentinelAddresses = address.split(","); config.useSentinelServers() .setDatabase(database) .setPassword(password) .setMasterName(masterName) .addSentinelAddress(sentinelAddresses); } else if ("master-slave".equals(mode)) { String[] masterSlaveAddresses = address.split(","); if (masterSlaveAddresses.length == 1) { throw new IllegalArgumentException( "redis.redisson.address MUST have multiple redis addresses for master-slave mode."); } String[] slaveAddresses = new String[masterSlaveAddresses.length - 1]; System.arraycopy(masterSlaveAddresses, 1, slaveAddresses, 0, slaveAddresses.length); config.useMasterSlaveServers() .setDatabase(database) .setPassword(password) .setMasterAddress(masterSlaveAddresses[0]) .addSlaveAddress(slaveAddresses); } else { throw new IllegalArgumentException(mode); } return Redisson.create(config); } }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1142195.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

腾讯开源HY-MT1.5教程:上下文感知翻译实现

腾讯开源HY-MT1.5教程&#xff1a;上下文感知翻译实现 1. 引言 随着全球化进程的加速&#xff0c;高质量、多语言互译需求日益增长。传统翻译模型在面对混合语言、专业术语和上下文依赖等复杂场景时&#xff0c;往往表现乏力。为此&#xff0c;腾讯推出了开源翻译大模型 HY-M…

Keil5安装配置步骤详解:适合初学者的完整指南

从零开始搭建Keil5开发环境&#xff1a;嵌入式工程师的第一步 你是否刚接触单片机&#xff0c;面对一堆专业术语感到无从下手&#xff1f; “MDK”、“DFP”、“Arm Compiler”……这些词听起来像天书&#xff1f; 别担心&#xff0c;每个嵌入式大神都是从 安装Keil5 这一…

用BART微调医疗病历摘要更稳

&#x1f4dd; 博客主页&#xff1a;jaxzheng的CSDN主页 医疗病历摘要的稳定性革命&#xff1a;BART微调的鲁棒性优化策略目录医疗病历摘要的稳定性革命&#xff1a;BART微调的鲁棒性优化策略 引言&#xff1a;当精度不再是唯一标尺 问题深度剖析&#xff1a;稳定性为何是医疗摘…

腾讯HY-MT1.5 GPU配置指南:4090D性能调优

腾讯HY-MT1.5 GPU配置指南&#xff1a;4090D性能调优 1. 引言 随着多语言交流需求的快速增长&#xff0c;高质量、低延迟的机器翻译系统成为智能应用的核心组件。腾讯近期开源了其新一代混元翻译大模型 HY-MT1.5 系列&#xff0c;包含两个关键版本&#xff1a;HY-MT1.5-1.8B 和…

腾讯开源模型部署:HY-MT1.5高可用方案设计

腾讯开源模型部署&#xff1a;HY-MT1.5高可用方案设计 1. 引言&#xff1a;腾讯开源翻译大模型的演进与挑战 随着全球化进程加速&#xff0c;高质量、低延迟的机器翻译需求日益增长。传统云中心化翻译服务虽具备强大算力支撑&#xff0c;但在隐私保护、实时响应和边缘场景适应…

混元翻译1.5模型实战:多语言视频字幕生成

混元翻译1.5模型实战&#xff1a;多语言视频字幕生成 随着全球化内容消费的快速增长&#xff0c;多语言视频字幕的自动生成已成为跨文化传播、在线教育和流媒体平台的核心需求。传统翻译方案在面对复杂语境、混合语言表达以及实时性要求时&#xff0c;往往难以兼顾质量与效率。…

STM32在Keil4中的Flash烧录问题解析

深入Keil4烧录现场&#xff1a;STM32 Flash编程失败的根源与实战修复你有没有遇到过这样的场景&#xff1f;代码编译通过&#xff0c;调试器灯亮着&#xff0c;线也插好了——但一点“Download”&#xff0c;Keil弹出一句冷冰冰的提示&#xff1a;“Cortex-M3: No Algorithm Fo…

腾讯混元翻译模型HY-MT1.5:从入门到高阶部署完整指南

腾讯混元翻译模型HY-MT1.5&#xff1a;从入门到高阶部署完整指南 1. 引言 随着全球化进程的加速&#xff0c;跨语言沟通已成为企业出海、内容本地化和国际协作的核心需求。然而&#xff0c;传统翻译服务在准确性、响应速度和多语言支持方面仍面临诸多挑战。在此背景下&#xf…

工业控制板卡中上拉电阻布局布线规范:操作指南

工业控制板卡中的上拉电阻设计&#xff1a;从原理到实战的完整指南在工业自动化现场&#xff0c;一块小小的PCB可能承载着数十个传感器、通信接口和控制器之间的数据交互。而在这背后&#xff0c;一个看似不起眼的元件——上拉电阻&#xff0c;却常常成为决定系统能否稳定运行的…

新手教程:如何正确连接STLink与STM32芯片引脚

从零开始搞懂STLink与STM32接线&#xff1a;新手避坑全指南你有没有遇到过这样的场景&#xff1f;手握一块崭新的STM32最小系统板&#xff0c;插上ST-Link调试器&#xff0c;打开STM32CubeIDE&#xff0c;点击“Download”——结果弹出一行红字&#xff1a;“No target connect…

HY-MT1.5性能深度:量化前后效果对比

HY-MT1.5性能深度&#xff1a;量化前后效果对比 1. 引言&#xff1a;腾讯开源的翻译大模型HY-MT1.5 随着全球化进程加速&#xff0c;高质量、低延迟的机器翻译需求日益增长。传统云端翻译服务虽性能强大&#xff0c;但在隐私保护、响应速度和离线可用性方面存在局限。为此&am…

从模型到产品:基于HY-MT1.5的翻译APP开发

从模型到产品&#xff1a;基于HY-MT1.5的翻译APP开发 随着多语言交流需求的不断增长&#xff0c;高质量、低延迟的翻译服务已成为智能应用的核心能力之一。腾讯开源的混元翻译大模型 HY-MT1.5 系列&#xff0c;凭借其在多语言支持、边缘部署能力和上下文理解方面的突出表现&am…

HY-MT1.5-7B部署教程:4090D显卡配置最佳实践

HY-MT1.5-7B部署教程&#xff1a;4090D显卡配置最佳实践 1. 引言 随着多语言交流需求的不断增长&#xff0c;高质量、低延迟的翻译模型成为智能应用的核心组件。腾讯开源的混元翻译大模型 HY-MT1.5 系列&#xff0c;凭借其在多语言互译、混合语种处理和边缘部署方面的突出表现…

文心一言是百度开发的AI对话工具,支持中文场景下的多轮对话、文本生成、知识问答等

理解文心一言的基础功能文心一言是百度开发的AI对话工具&#xff0c;支持中文场景下的多轮对话、文本生成、知识问答等。其核心优势在于对中文语境的理解&#xff0c;包括成语、古诗词、网络用语等。熟悉基础指令如“总结这篇文章”“写一封商务邮件”能快速提升效率。优化提问…

PDF-Extract-Kit教程:PDF文档安全处理技巧

PDF-Extract-Kit教程&#xff1a;PDF文档安全处理技巧 1. 引言 1.1 技术背景与学习目标 在数字化办公和学术研究中&#xff0c;PDF 文档已成为信息传递的核心载体。然而&#xff0c;PDF 的封闭性使得内容提取&#xff08;如公式、表格、文本&#xff09;成为一大挑战。传统工…

Keil软件下51单片机流水灯实现:系统学习路径

从零点亮第一盏灯&#xff1a;Keil下51单片机流水灯实战全解析你有没有过这样的经历&#xff1f;翻开一本厚厚的《单片机原理》&#xff0c;看到满篇的“SFR”、“准双向口”、“机器周期”&#xff0c;脑子一片空白。而当你终于鼓起勇气打开Keil&#xff0c;写完第一行P1 0xF…

企业级实时翻译系统:HY-MT1.5架构设计指南

企业级实时翻译系统&#xff1a;HY-MT1.5架构设计指南 随着全球化进程加速&#xff0c;企业对高质量、低延迟的多语言互译需求日益增长。传统云翻译服务虽具备较强性能&#xff0c;但在数据隐私、响应速度和定制化能力方面存在局限。为此&#xff0c;腾讯开源了混元翻译大模型…

Spring Boot应用关闭分析

优质博文&#xff1a;IT-BLOG-CN 一、使用spring容器的close方法关闭。 可通过在代码中获取SpringContext并调用close方法去关闭容器。 使用SpringApplication的exit方法。 public static int exit(ApplicationContext context,ExitCodeGenerator... exitCodeGenerators) {…

HY-MT1.5-7B部署教程:GPU算力配置最佳实践

HY-MT1.5-7B部署教程&#xff1a;GPU算力配置最佳实践 1. 引言 随着多语言交流需求的快速增长&#xff0c;高质量、低延迟的翻译模型成为智能应用的核心组件。腾讯开源的混元翻译大模型 HY-MT1.5 系列&#xff0c;凭借其在多语言互译、混合语言处理和术语控制方面的卓越表现&a…

HY-MT1.5-7B带注释翻译场景优化详细教程

HY-MT1.5-7B带注释翻译场景优化详细教程 1. 引言 随着全球化进程的加速&#xff0c;高质量、多语言互译能力成为自然语言处理领域的重要需求。腾讯近期开源了混元翻译大模型系列的最新版本——HY-MT1.5&#xff0c;包含两个核心模型&#xff1a;HY-MT1.5-1.8B 和 HY-MT1.5-7B…