SpringBoot集成Redisson操作Redis
目录
- 一、前言
- 二、基础集成配置(redis单节点)
- 2.1、POM
- 2.2、添加配置文件
- 2.3、添加启动类
- 2.4、添加测试类测试redisson操作redis
一、前言
Redisson 是一个在 Redis 的基础上实现的 Java 驻内存数据网格,Redisson相比较与Jedis和Lettuce来说最大的区别就是,Redisson提供了很多分布式相关操作服务,例如,分布式锁,分布式集合,可通过Redis支持延迟队列等,一般建议Lettuce + Redisson一起使用,需要使用Redis高级功能就使用Redisson,如果不需要使用高级功能优先推荐使用Lettuce。
二、基础集成配置(redis单节点)
工程结构

2.1、POM
<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.3.12.RELEASE</version></parent><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><dependency><groupId>org.redisson</groupId><artifactId>redisson-spring-boot-starter</artifactId><version>3.17.0</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies>
2.2、添加配置文件
import org.redisson.Redisson;
import org.redisson.api.RedissonClient;
import org.redisson.codec.JsonJacksonCodec;
import org.redisson.config.Config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Configuration
public class RedissonConfig {private String redissonUrl = "redis://172.16.8.169:6379";private String password = "123456";private Integer datebase = 0;@Beanpublic RedissonClient redisson() {Config config = new Config();config.useSingleServer().setAddress(redissonUrl).setPassword((password == null || "".equals(password)) ? null : password).setDatabase(datebase)// 连接空闲超时,如果当前连接池里的连接数量超过了最小空闲连接数,而同时有连接空闲时间超过了该数值,那么这些连接将会自动被关闭,并从连接池里去掉。时间单位是毫秒。.setIdleConnectionTimeout(10000)// 连接超时,同节点建立连接时的等待超时。时间单位是毫秒。.setConnectTimeout(10000)// 命令等待超时,等待节点回复命令的时间。该时间从命令发送成功时开始计时。.setTimeout(1000)// 命令失败重试次数,如果尝试达到 retryAttempts(命令失败重试次数) 仍然不能将命令发送至某个指定的节点时,将抛出错误。如果尝试在此限制之内发送成功,则开始启用 timeout(命令等待超时) 计时.setRetryAttempts(3)// 命令重试发送时间间隔,在一条命令发送失败以后,等待重试发送的时间间隔。时间单位是毫秒。.setRetryInterval(1500)// 每个连接的最大订阅数量。.setSubscriptionsPerConnection(5)// 用于发布和订阅连接的最小保持连接数(长连接)。Redisson内部经常通过发布和订阅来实现许多功能。长期保持一定数量的发布订阅连接是必须的。.setSubscriptionConnectionMinimumIdleSize(1)// 用于发布和订阅连接的连接池最大容量。连接池的连接数量自动弹性伸缩。.setSubscriptionConnectionPoolSize(50)// 最小保持连接数(长连接)。长期保持一定数量的连接有利于提高瞬时写入反应速度。.setConnectionMinimumIdleSize(50)// 连接池最大容量。连接池的连接数量自动弹性伸缩。.setConnectionPoolSize(100)// 监测DNS的变化情况的时间间隔。时间单位是毫秒。.setDnsMonitoringInterval(5000)// PING 心跳时间,单位毫秒。.setPingConnectionInterval(10000);// 0 cpu * 2config.setThreads(0);// 0 cpu * 2config.setNettyThreads(0);// 使用json序列化方式config.setCodec(new JsonJacksonCodec());//创建客户端(发现创建RedissonClient非常耗时,基本在2秒-4秒左右)return Redisson.create(config);}
}
2.3、添加启动类
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
public class RedissonApplication {public static void main(String[] args) {SpringApplication.run(RedissonApplication.class);}
}
2.4、添加测试类测试redisson操作redis
import org.junit.Test;
import org.junit.runner.RunWith;
import org.redisson.api.RBucket;
import org.redisson.api.RedissonClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;@RunWith(SpringRunner.class)
@SpringBootTest(classes = RedissonApplication.class)
public class RedissonTest {@Autowiredprivate RedissonClient redissonClient;@Testpublic void t1(){String key = "key1";System.out.println("获取Bucket");RBucket<Object> bucket = redissonClient.getBucket(key);System.out.println("插入数据到redis");bucket.set("value1");Object value = bucket.get();System.out.println("从redis中获取到值为 "+value);Boolean delete = bucket.delete();System.out.println("删除redis中值 "+delete);}
}
相关文章:
SpringBoot集成Redisson操作Redis
目录 一、前言二、基础集成配置(redis单节点)2.1、POM2.2、添加配置文件2.3、添加启动类2.4、添加测试类测试redisson操作redis 一、前言 Redisson 是一个在 Redis 的基础上实现的 Java 驻内存数据网格,Redisson相比较与Jedis和Lettuce来说最…...
整数反转
题目: 给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。 如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。 假设环境不允许存储 64 位整数(有符号或无符号)。 示例 …...
【ELK使用指南 2】常用的 Logstash filter 插件详解(附应用实例)
Logstash filter 一、logstash filter过滤插件的常用模块简介二、grok 正则捕获插件2.1 grok插件的作用2.2 内置正则表达式2.3 自定义正则表达式 三、mutate 数据修改插件3.1 mutate插件的作用3.2 常用的配置选项3.3 mutate插件应用实例 四、multiline 多行合并插件4.1 multili…...
(转)STR 内核做了什么
参考这篇文章: Linux电源管理(6)_Generic PM之Suspend功能 写的很清晰...
fastapi项目结构以及多进程部署
环境: python3.10.x Linux/centos 背景: 最近在用FastApi开发数据统计,并将统计数据返回给前端展示的数据系统。 数据库: mongodb, python包为mongoEngine 项目结构 main.py api middleware router-- __init__.py-- …...
【LeetCode】 412. Fizz Buzz
题目链接 文章目录 Python3 【O(n) O(1)】C.emplace_back() 【C 11 之后】 Python3 【O(n) O(1)】 初始版本 class Solution:def fizzBuzz(self, n: int) -> List[str]:ans []for i in range(1, n1):if i % 5 0 and i % 3 0:ans.append("FizzBuzz")elif i % …...
vector+算法sort与list+sort的效率比较,容易写错的地方原因探析
我写的代码: #include <iostream> using namespace std; #include <vector> #include <list> #include <algorithm> int main() {const int N 10000000;vector<int> v;list<int> l;for (int i 0; i < N; i){v.push_back(…...
iOS——Manager封装网络请求
在之前的项目里,我们都是把网络请求写在viewController的viewDidLoad,而实际中使用的时候并不能这么简单,对于不同的需要,我们需要有不同的网络请求。所以我们可以用单例模式创建一个全局的Manager类,用实例Manager来执…...
【javascript】内部引入与外部引入javascript
创建a.html 内部引入: 外部引入: 创建a.js 注意: 我这里的a.js和a.html是放在同一个目录下,如果a.js放在js的目录下,a.html 调用a.js的时候 <script src"/js/a.js"></script>...
掌握JavaScript的练习之道:十个手写函数让你信手拈来!
🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…...
买卖股票的最佳时机 II[中等]
优质博文:IT-BLOG-CN 一、题目 给你一个整数数组prices,其中prices[i]表示某支股票第i天的价格。在每一天,你可以决定是否购买和/或出售股票。你在任何时候最多只能持有一股股票。你也可以先购买,然后在同一天出售。返回你能获得…...
前端开发调试技巧:如何在Component下选中当前插件并且查看当前插件信息
在react开发项目中,在Component下选中组件,然后在控制台输$r 按回车键即可输出该组件信息。例如 $r.props输出该组件的props参数。例子详情见如下截图...
你是否还迷茫要不要学习Linux?
近几年Linux这个词好像很流行,无论是现实工作中,还是在网络信息中均可以听到或者看到有关Linux相关的内容,可以说Linux无处不在。说到这,有人可能会问了,我对Linux比较感兴趣,但是没有接触过Linuxÿ…...
leetcode(1)链表
# 1. 定义一个链表节点 class ListNode:def __init__(self, val0, next_nodeNone):self.val valself.next_node next_node# 2. 定义一个 node头节点 class LinkedList:def __init__(self):self.head None# 3.链表查找元素 get(index): def get_node(self, index)…...
spring boot Rabbit高级教程
消息可靠性 生产者重试机制 首先第一种情况,就是生产者发送消息时,出现了网络故障,导致与MQ的连接中断。 为了解决这个问题,SpringAMQP提供的消息发送时的重试机制。即:当RabbitTemplate与MQ连接超时后,…...
FTP的魅力:构建高效的文件传输基础
1 ftp介绍 1.1 ftp服务器安装 dnf install vsftpd-3.0.3-31.el8.x86_64 -y # 安装ftp服务 systemctl enable --now vsftpd # 启动ftp服务 systemctl stop --now firewalld.service # 关闭防火墙,允许客户端访问anonymous_enableYES #启动匿名用户访问功能1.2 客户…...
70、window11+visual studio2019+共享内存进行数据传输
基本思想:服务端和客户端 写共享内存 #include <windows.h> #include <iostream> using namespace std;HANDLE g_EventRead; // 读信号灯 HANDLE g_EventWrite; // 写信号灯 // 定义共享数据class Writer { public:Writer(const int buf_size, const wchar_t…...
SSTI模板注入(flask) 学习总结
文章目录 Flask-jinja2 SSTI 一般利用姿势SSTI 中常用的魔术方法内建函数 利用 SSTI 读取文件Python 2Python 3 利用 SSTI 执行命令寻找内建函数 eval 执行命令寻找 os 模块执行命令寻找 popen 函数执行命令寻找 importlib 类执行命令寻找 linecache 函数执行命令寻找 subproce…...
最近的工作和生活
大家好,我是记得诚。 聊一聊最近的工作和生活。 不知不觉在管理岗位,快干一年了。技术管理还是比较纯粹,主要还是以解决问题为主,对自己的考验也更大了,要关注更广的技术,也要专注更深的技术细节。 技术…...
第六节:Word中对象的层次结构
《VBA之Word应用》(10178982),是我推出第八套教程,教程是专门讲解VBA在Word中的应用,围绕“面向对象编程”讲解,首先让大家认识Word中VBA的对象,以及对象的属性、方法,然后通过实例让…...
2026届最火的五大降AI率网站实际效果
Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 现当下各种AI检测工具正变得越发普及,要是用户所提交的文本被判定为有着高AI生成…...
黑客用ChatGPT生成病毒:安全测试员的噩梦
当攻击进入“自动化”时代对于软件测试从业者而言,每一次技术革新都意味着测试对象、方法和工具的深刻变革。过去,我们面对的是由人类程序员编写的、逻辑相对固定的代码。然而,大语言模型(LLM)的兴起,特别是…...
ModTheSpire终极指南:10个技巧让你的《杀戮尖塔》模组体验翻倍
ModTheSpire终极指南:10个技巧让你的《杀戮尖塔》模组体验翻倍 【免费下载链接】ModTheSpire External mod loader for Slay The Spire 项目地址: https://gitcode.com/gh_mirrors/mo/ModTheSpire ModTheSpire是《杀戮尖塔》(Slay The Spire)最强大的外部模组…...
告别繁琐配置:用快马ai一键生成windows版openclaw自动化安装脚本原型
最近在折腾一个开源工具OpenClaw,发现它在Windows下的安装过程真是让人头大——各种依赖检查、环境变量配置,手动操作一不小心就出错。作为一个懒人程序员,我决定用Python写个自动化安装脚本,结果发现用InsCode(快马)平台的AI辅助…...
7大能力解锁:让浏览器成为你的全能Markdown工作站
7大能力解锁:让浏览器成为你的全能Markdown工作站 【免费下载链接】markdown-viewer Markdown Viewer / Browser Extension 项目地址: https://gitcode.com/gh_mirrors/ma/markdown-viewer 据开发者生态调研显示,超过90%的技术文档工作者面临本地…...
终极指南:5步解锁MacBook Touch Bar在Windows系统的完整显示功能
终极指南:5步解锁MacBook Touch Bar在Windows系统的完整显示功能 【免费下载链接】DFRDisplayKm Windows infrastructure support for Apple DFR (Touch Bar) 项目地址: https://gitcode.com/gh_mirrors/df/DFRDisplayKm 还在为MacBook Pro的Touch Bar在Wind…...
Manta发票应用字体定制终极指南:如何为专业发票添加完美排版效果
Manta发票应用字体定制终极指南:如何为专业发票添加完美排版效果 【免费下载链接】Manta 🎉 Flexible invoicing desktop app with beautiful & customizable templates. 项目地址: https://gitcode.com/gh_mirrors/ma/Manta 🎉 想…...
GLM-4.1V-9B-Base与Dify联动:零代码构建企业级AI应用平台
GLM-4.1V-9B-Base与Dify联动:零代码构建企业级AI应用平台 1. 企业AI应用的新选择 最近接触了不少企业客户,发现一个普遍现象:大家都想用AI,但真正能用起来的却不多。技术门槛高、开发周期长、维护成本大,这些问题让很…...
Qwen3.5-2B企业落地案例:制造业设备图片故障诊断辅助系统搭建
Qwen3.5-2B企业落地案例:制造业设备图片故障诊断辅助系统搭建 1. 项目背景与挑战 在制造业生产线上,设备故障诊断一直是影响生产效率的关键环节。传统方式依赖工程师人工巡检,存在以下痛点: 人力成本高:需要专业工程…...
效率提升秘籍,用快马平台生成模块化openclaw配置代码
在深度学习项目中,模型配置往往是开发过程中最耗时的环节之一。最近我在尝试构建一个openclaw模型时,发现通过InsCode(快马)平台可以大幅提升效率,今天就分享一下我的实践心得。 模块化设计思路 传统模型开发中,我们经常需要反复编…...
