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

Redis 整合中 Redisson 的使用

大家好 , 我是苏麟 , 今天带来 Redisson 使用 .

官方文档 :  GitHub - redisson/redisson: Redisson - Easy Redis Java client with features of In-Memory Data Grid. Sync/Async/RxJava/Reactive API. Over 50 Redis based Java objects and services: Set, Multimap, SortedSet, Map, List, Queue, Deque, Semaphore, Lock, AtomicLong, Map Reduce, Bloom filter, Spring Cache, Tomcat, Scheduler, JCache API, Hibernate, RPC, local cache ...

 

引入依赖

        <!--https://github.com/redisson/redisson#quick-start--><dependency><groupId>org.redisson</groupId><artifactId>redisson</artifactId><version>3.23.2</version></dependency>

 yml配置(例如)

  #redis 配置redis:port: 6379database: 1host: localhost

Redisson配置

@Data
@Configuration
@ConfigurationProperties(prefix = "spring.redis")
public class RedissonConfig {private String host;private String port;@Beanpublic RedissonClient redissonClient(){// 1.创建配置Config config = new Config();String redissonAddress = String.format("redis:/%s:%s",host,port);//useClusterServers()集群//setDatabase() 设置那个redis库config.useSingleServer().setAddress(redissonAddress).setDatabase(2);//2.创建实例RedissonClient redissonClient = Redisson.create(config);return  redissonClient;}
}

 这里@ConfigurationProperties(prefix = "spring.redis")用法请看 : 读取/加载 properties/yml 配置文件_踏遍三十六岸的博客-CSDN博客


像操作本地集合一样操作Redisson


@SpringBootTest
class UserCenterApplicationTests {@Resourceprivate RedissonClient redissonClient;@Testvoid test() {//list操作 数据存在 JVM 内存中List<String> list = new ArrayList<>();list.add("sl");System.out.println(list.get(0));list.remove(0);//数据存在 Redis 内存中//getList()取列表名字 因为 redis 中是 key-value 存在RList<String> rList = redissonClient.getList("redisson-list");rList.add("sl-redisson");System.out.println(rList.get(0));rList.remove(0);    }@Testvoid hashTest(){//哈希操作RMap<String, String> rMap = redissonClient.getMap("LiJiaWei");//设置 map 中的 key - valuerMap.put("sl","1");rMap.put("jw","2");System.out.println(redissonClient.getMap("LiJiaWei").get("sl"));System.out.println(redissonClient.getMap("LiJiaWei").get("jw"));redissonClient.getMap("LiJiaWei").remove("sl");redissonClient.getMap("LiJiaWei").remove("jw");}//......//其他操作都一样
}

Redssion 分布式锁

定时任务可以看(或者其他的) :  Spring Schedular 定时任务_踏遍三十六岸的博客-CSDN博客

@Component
public class PreScheduled {@Resourceprivate RedissonClient redissonClient;/*** 每天执行*/@Scheduled(cron = "0 59 23 * * *")public void doCah() {//获取锁 , 可重入  指定锁的名称RLock lock = redissonClient.getLock("sl:redisson:cache:lock");try {/*** 只有一个线程获取到锁* 等待时间 , 执行时间 , 毫秒*/if (lock.tryLock(0, 30000L, TimeUnit.MILLISECONDS)) {//...}} catch (InterruptedException e) {e.printStackTrace();} finally {/*** 只能释放自己加的锁*/if (lock.isHeldByCurrentThread()) {lock.unlock();}}}
}

感兴趣的小伙伴可以自行了解下面知识!

Redisson的可重入锁原理

Redisson看门狗WatchDog机制

Redisson的multiLock原理


这期就到这里 , 拜拜 !

相关文章:

Redis 整合中 Redisson 的使用

大家好 , 我是苏麟 , 今天带来 Redisson 使用 . 官方文档 : GitHub - redisson/redisson: Redisson - Easy Redis Java client with features of In-Memory Data Grid. Sync/Async/RxJava/Reactive API. Over 50 Redis based Java objects and services: Set, Multimap, Sorte…...

数据结构(5)

堆 堆可以看作一颗完全二叉树的数组对象。 特性&#xff1a; 1.堆是完全二叉树&#xff0c;除了树最后一层不需要满&#xff0c;其余层次都需要满&#xff0c;如果最后一层不是满的&#xff0c;那么要求左满右不满 2.通常使用数组实现&#xff0c;将二叉树结点依次放入数组中…...

R语言实现网状Meta分析(1)

#R语言实现网状Meta library(gemtc) help(package"gemtc") data<-gemtc::smoking #注意按照实例格式编写数据 net<-mtc.network(data$data.ab) #网状图 plot(net,mode"circle",displaylabelsT,boxed.labelF) summary(net) #网状model model<-mtc…...

Reactor 第十篇 定制一个生产的WebClient

1 为什么要用 WebClient 刚开始尝试使用 Spring WebFlux 的时候&#xff0c;很多人都会使用 Mono.fromFuture() 将异步请求转成 Mono 对象&#xff0c;或者 Mono.fromSupplier() 将请求转成 MOno 对象&#xff0c;这两种方式在响应式编程中都是不建议的&#xff0c;都会阻塞当…...

桃子叶片病害识别(Python代码,pyTorch框架,深度卷积网络模型,很容易替换为其它模型,带有GUI识别界面)

1.分为三类 健康的桃子叶片 &#xff0c;251张 桃疮痂病一般&#xff0c;857张 桃疮痂病严重&#xff0c;770 张 2. GUI界面识别效果和predict.py识别效果如视频所示桃子叶片病害识别&#xff08;Python代码&#xff0c;pyTorch框架&#xff0c;深度卷积网络模型&#xff0…...

matlab使用教程(21)—求函数最值

1. 求函数最优值 1.1求一元函数的最小值 如果给定了一个一元数学函数&#xff0c;可以使用 fminbnd 函数求该函数在给定区间中的局部最小值。例如&#xff0c;请考虑 MATLAB 提供的 humps.m 函数。下图显示了 humps 的图。 x -1:.01:2; y humps(x); plot(x,y) xlabel(x)…...

Redis中 为什么Lua脚本可以保证原子性?

Redis中 为什么Lua脚本可以保证原子性&#xff1f;...

tda4 videnc-test-app: CONTINUOUS and STEPWISE FRAMEINTERVALS not supported

/* videnc-test-app */ https://git.ti.com/cgit/jacinto7_multimedia/ git clone https://git.ti.com/git/jacinto7_multimedia/videnc-test-app.git // 编译 ./autogen.sh ./configure --enable-maintainer-mode --buildi386-linux --hostaarch64-none-linux CC/home/share…...

[已解决] libGL error: MESA-LOADER: failed to open swrast

在新的服务器中配置好虚拟环境后&#xff0c;利用已有的预训练模型test后&#xff0c;可视化时遇到&#xff1a; libGL error: MESA-LOADER: failed to open swrast: /usr/lib/dri/swrast_dri.so: cannot open shared object file: No such file or directory (search paths /u…...

JVM及垃圾回收机制

文章目录 1、JVM组成&#xff1f;各部分作用&#xff1f;1.1 类加载器&#xff08;Class Loaders&#xff09;1.2 运行时数据区&#xff08;Runtime Data Area&#xff09;1.3 执行引擎&#xff08;Execution Engine&#xff09;1.4 本地方法接口&#xff08;Native Interface&…...

windows11不允许安装winpcap4.1.3

问题&#xff1a;下载安装包后在安装时显示与电脑系统不兼容&#xff0c;不能安装。 原因&#xff1a;winpcap是一个用于Windows操作系统的网络抓包库&#xff0c;有一些安全漏洞&#xff0c;存在被黑客攻击的风险。Windows11为了加强系统安全而禁用了这个库&#xff0c;因此不…...

matlab使用教程(23)—优化函数的参数

本博客向您介绍如何存储或访问向 MATLAB 复合函数&#xff08;如 fzero 或 integral&#xff09;传递的数学函数的额外参数。 MATLAB 复合函数基于某个值范围计算数学表达式。这些函数之所以称为复合函数是因为它们是接受函数句柄&#xff08;函数的指针&#xff09;作为输入…...

基于“互联网+ 服务供应链”的汽车道路救援系统对策分析

1。 建立“互联网服务供应链”背景下汽车道路救援系统 基于互联网的汽车道路救援&#xff0c;两级服务供应链结构是由服务提供商、服务 集成商和客户组成。“互联网服务供应链”背景下汽车道路救援系统组成&#xff0c; 它是一种 B2B2C 的形式&#xff0c;与前述传统汽车道路…...

浅谈泛在电力物联网在电力设备状态在线监测中的应用

安科瑞 华楠 摘要&#xff1a;随着信息化水平的不断发展&#xff0c;泛在电力物联网的建设提上日程&#xff0c;这对提升变电站电力设备在线监测水平&#xff0c;推动智能电网发展具有重要的指导意义。对基于物联网的电力设备状态监测系统进行了研究&#xff0c;概括了泛在电力…...

低通滤波器和高通滤波器

应用于图像低通滤波器和高通滤波器的实现 需要用到傅里叶变换 #include <opencv2/opencv.hpp> #include <Eigen> #include <iostream> #include <vector> #include <cmath> #include <complex>#define M_PI 3.14159265358979323846…...

VS中插入Qt插件后配置项目笔记

Project下要创建四个文件夹: bin(输出目录\工作目录) 、include(头文件目录) 、lib(动态库目录) 、src(源码目录) 一、主项目模块配置&#xff1a; 1.配置属性——>常规——>输出目录加入(..\..\bin\) 2.配置属性——>调试——>工作目录加入($(OutDir)) 备注&am…...

Hugo·Stack主题·使用及修改

代码折叠 cp themes/hugo折-themt-saick/exampleSlte/config.yamsclass"codefold"><summary class"codefold__title"><span class"codefold__title-text">" {{ with .Get 0}}{{.}}{{else}}click to expand{{ end }} "&…...

实战:大数据Spark简介与docker-compose搭建独立集群

文章目录 前言技术积累Spark简介Spark核心功能及优势Spark运行架构 Spark独立集群搭建安装docker和docker-composedocker-compose编排docker-compose编排并运行容器 Spark集群官方案例测试写在最后 前言 很多同学都使用过经典的大数据分布式计算框架hadoop&#xff0c;其分布式…...

嵌入性视角下的企业集成创新网络演化过程

从嵌入性角度来看&#xff0c;集成创新网络以社会关系嵌入或结构嵌入的联结方式&#xff0c;实 现创新资源共享。由于规模经济和能力的差异&#xff0c;较高的信息复杂程度往往更强调网 络化和外部组织之间的联合而不是一体化。企业集成创新网络依靠创新网络结点上 企业的合…...

回归预测 | MATLAB实现FA-ELM萤火虫算法优化极限学习机多输入单输出回归预测(多指标,多图)

回归预测 | MATLAB实现FA-ELM萤火虫算法优化极限学习机多输入单输出回归预测&#xff08;多指标&#xff0c;多图&#xff09; 目录 回归预测 | MATLAB实现FA-ELM萤火虫算法优化极限学习机多输入单输出回归预测&#xff08;多指标&#xff0c;多图&#xff09;效果一览基本介绍…...

OpenClaw成本优化方案:自建Qwen3-VL:30B替代高价多模态API

OpenClaw成本优化方案&#xff1a;自建Qwen3-VL:30B替代高价多模态API 1. 为什么需要关注OpenClaw的成本问题 第一次用OpenClaw完成多模态任务时&#xff0c;我被账单吓了一跳。当时需要处理200张产品图片的分类和描述生成&#xff0c;调用某商业多模态API后&#xff0c;费用…...

模型微调集成:OpenClaw调用Qwen3-32B的LoRA适配器实战

模型微调集成&#xff1a;OpenClaw调用Qwen3-32B的LoRA适配器实战 1. 为什么需要本地微调模型接入&#xff1f; 去年我在处理一批医疗文献自动化摘要任务时&#xff0c;发现通用大模型对专业术语的理解总差那么一口气。当模型把"冠状动脉搭桥术"解释成"心脏旁…...

嵌入式正交编码器软件解码库设计与实现

1. QuadratureEncoder 库概述QuadratureEncoder 是一个专为嵌入式系统设计的正交编码器信号处理库&#xff0c;面向 STM32、ESP32、nRF52 等主流 MCU 平台&#xff0c;提供高精度、低开销、抗干扰的旋转位置与速度检测能力。该库不依赖特定硬件外设&#xff08;如 STM32 的 TIM…...

终极Chrome全页截图指南:一键保存完整网页内容的高效方案

终极Chrome全页截图指南&#xff1a;一键保存完整网页内容的高效方案 【免费下载链接】full-page-screen-capture-chrome-extension One-click full page screen captures in Google Chrome 项目地址: https://gitcode.com/gh_mirrors/fu/full-page-screen-capture-chrome-ex…...

Protege新手避坑指南:搞懂‘类’、‘属性’和‘推理’到底怎么用(附常见错误排查)

Protege新手避坑指南&#xff1a;搞懂‘类’、‘属性’和‘推理’到底怎么用&#xff08;附常见错误排查&#xff09; 第一次打开Protege时&#xff0c;满屏的术语和复杂的界面可能会让你感到不知所措。作为一款强大的本体编辑工具&#xff0c;Protege确实有着陡峭的学习曲线。…...

Phi-4-Reasoning-Vision行业落地:教育领域图像题解与隐藏线索识别案例

Phi-4-Reasoning-Vision行业落地&#xff1a;教育领域图像题解与隐藏线索识别案例 1. 项目背景与价值 在教育领域&#xff0c;图像题解和隐藏线索识别一直是教学和考试中的难点。传统方法依赖人工标注和分析&#xff0c;效率低下且容易遗漏关键信息。Phi-4-Reasoning-Vision多…...

Wan2.1 VAE模型压缩实战:降低显存占用以适配更多GPU设备

Wan2.1 VAE模型压缩实战&#xff1a;降低显存占用以适配更多GPU设备 最近在尝试部署一些图像生成项目时&#xff0c;经常遇到一个头疼的问题&#xff1a;模型太大&#xff0c;显存不够用。特别是像Wan2.1 VAE这类模型&#xff0c;虽然生成效果出色&#xff0c;但动辄几个G的显…...

图像转3D模型:零基础制作个性化浮雕的完整指南

图像转3D模型&#xff1a;零基础制作个性化浮雕的完整指南 【免费下载链接】ImageToSTL This tool allows you to easily convert any image into a 3D print-ready STL model. The surface of the model will display the image when illuminated from the left side. 项目地…...

Spring Boot实战:5分钟搞定CORS跨域配置(含@CrossOrigin详解)

Spring Boot实战&#xff1a;5分钟搞定CORS跨域配置&#xff08;含CrossOrigin详解&#xff09; 现代Web开发中&#xff0c;前后端分离架构已成为主流选择。这种架构下&#xff0c;前端应用运行在一个域名下&#xff0c;而后端API服务则部署在另一个域名。当浏览器尝试从前端向…...

语义通信:从理论到6G落地的关键技术演进与挑战

1. 语义通信的理论基石 语义通信&#xff08;Semantic Communication, SemCom&#xff09;的核心思想与传统通信有着本质区别。传统通信追求的是"准确传输比特流"&#xff0c;而语义通信关注的是"有效传递信息的意义"。这就像两个人对话&#xff1a;传统通…...