当前位置: 首页 > 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;效果一览基本介绍…...

Heritrix3源码深度解析:从CrawlURI到ProcessorChain的执行流程

Heritrix3源码深度解析&#xff1a;从CrawlURI到ProcessorChain的执行流程 【免费下载链接】heritrix3 Heritrix is the Internet Archives open-source, extensible, web-scale, archival-quality web crawler project. 项目地址: https://gitcode.com/gh_mirrors/he/herit…...

让你的调试日志五彩斑斓:J-Link RTT高级封装技巧(支持中文、浮点数、十六进制)

让你的调试日志五彩斑斓&#xff1a;J-Link RTT高级封装技巧&#xff08;支持中文、浮点数、十六进制&#xff09; 调试是嵌入式开发中不可或缺的一环&#xff0c;而高效的调试工具能显著提升开发效率。J-Link RTT&#xff08;Real Time Transfer&#xff09;作为一种无需额外硬…...

用VSCode+PlatformIO给ESP32做个简易手表:基于LVGL和1.3寸屏的UI实战

基于LVGL的ESP32智能手表开发实战&#xff1a;从硬件驱动到UI设计全流程 在创客圈里&#xff0c;ESP32凭借其出色的性价比和丰富的功能接口&#xff0c;一直是物联网项目的热门选择。而当我们把目光投向更直观的人机交互领域时&#xff0c;LVGL&#xff08;Light and Versatile…...

3个突破性技术,让抖音无水印视频下载效率提升200%

3个突破性技术&#xff0c;让抖音无水印视频下载效率提升200% 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback support. …...

软文SEO的常见指标有哪些_如何撰写有吸引力的软文标题

<h2>软文SEO的常见指标有哪些</h2> <p>在当今的数字营销领域&#xff0c;软文&#xff08;Soft Article&#xff09;已经成为推动网站流量和品牌知名度的重要工具。要让软文真正发挥作用&#xff0c;我们必须了解软文SEO的常见指标&#xff0c;这些指标可以帮…...

迪文串口屏C51开发避坑指南:从ModBus ASCII模式到音乐播放实战

迪文串口屏C51开发实战&#xff1a;从ModBus ASCII到音乐播放的深度解析 迪文串口屏在工业控制领域占据重要地位&#xff0c;其C51开发环境为开发者提供了高度灵活的定制能力。本文将聚焦三个典型开发场景&#xff1a;ModBus ASCII模式移植、C51变量定义导致的定时问题以及音乐…...

突破资源封装壁垒:RePKG开源工具全维度应用指南

突破资源封装壁垒&#xff1a;RePKG开源工具全维度应用指南 【免费下载链接】repkg Wallpaper engine PKG extractor/TEX to image converter 项目地址: https://gitcode.com/gh_mirrors/re/repkg 问题&#xff1a;专用资源格式的困境与破局思路 如何突破专用格式的封锁…...

Kubernetes 环境下 SkyWalking 的高效部署与性能调优

1. Kubernetes 环境下的 SkyWalking 部署实战 第一次在 Kubernetes 上部署 SkyWalking 时&#xff0c;我踩了不少坑。记得当时为了调试一个存储配置问题&#xff0c;整整熬了两个通宵。现在回想起来&#xff0c;如果当时有人能给我一份详细的实战指南&#xff0c;至少能节省 80…...

ROS 实战指南:从 rosbag 高效提取 RGB 与深度图数据

1. rosbag基础操作与核心概念 在机器人开发领域&#xff0c;rosbag就像是一个万能的数据记录仪。想象一下你正在调试一个机器人视觉系统&#xff0c;传感器数据像流水一样不断涌来&#xff0c;这时候rosbag就能帮你把关键数据"冻住"&#xff0c;方便后续反复分析。我…...

小米智能家居与Home Assistant深度整合方案

小米智能家居与Home Assistant深度整合方案 【免费下载链接】ha_xiaomi_home Xiaomi Home Integration for Home Assistant 项目地址: https://gitcode.com/GitHub_Trending/ha/ha_xiaomi_home 小米智能家居与Home Assistant的深度整合为用户提供了全面的智能设备控制解…...