【Redis】Redisson实现分布式锁

Redisson是一个在Redis的基础上实现的Java驻内存数据网格(In-Memory Data Grid)。它不仅提供了一系列的分布式的Java常用对象,还提供了许多分布式服务,其中就包含了各种分布式锁的实现。
在这里插入图片描述
官网地址
GitHub地址

Redisson入门

1.引入依赖

<dependency>  <groupId>org.redisson</groupId>    <artifactId>redisson</artifactId><version>3.13.6</version>
</dependency>

2.配置客户端

@Configuration
public class RedisConfig {@Beanpublic RedissonClient redisClient() {// 配置类Config config = new Config();// 添加redis地址config.useSingleServer().setAddress("redis://xxx.xxx.xx.xx:6379").setPassword("xxx");return Redisson.create(config);}
}

3.测试

@SpringBootTest
public class RedissonTset {@Resourceprivate RedissonClient redisClient;@Testvoid testRedisson() throws InterruptedException {RLock lock = redisClient.getLock("lock");// 分别为获取锁的最大等待时间, 锁自动等待时间boolean isLock = lock.tryLock(1, 10, TimeUnit.SECONDS);if (isLock) {try {System.out.println("执行业务");} finally {lock.unlock();}}}
}

Redis分布式锁原理

Redisson分布式锁原理:

  • 可重入:利用hash结构记录线程id和重入次数
  • 可重试:利用信号量和PubSub功能实现等待、唤醒,获取锁失败的重试机制
  • 超时续约:利用watchDog,每隔一段时间(releaseTime / 3),重置超时时间
    在这里插入图片描述

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

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

相关文章

Nexus3 Docker 私有仓库

Nexus3 Docker 私有仓库 安装并部署 Nexus3 $ docker search nexus3$ docker pull sonatype/nexus3$ mkdir /home/tester/data/docker/nexus3/sonatype-work $ sudo chown -R 200 /home/tester/data/docker/nexus3/sonatype-work$ docker run -d --namenexus3 \ --restartalw…

面试题目--3.19

1.foo()和foo()之间有什么区别&#xff1f; 代表所有的warning忽略 2.什么是csrf攻击&#xff1f;如何防范&#xff1f; csrf&#xff0c;跨站请求伪造&#xff0c;攻击方伪装用户身份发送请求从而窃取信息或者破坏系统。 基本原理&#xff1a;用户访问a网站登录并生成了coo…

亲历中国智驾大战,吴新宙加入NVIDIA半年后首秀

‍作者 |张祥威 编辑 |德新 吴新宙近日现身NVIDIA GTC&#xff0c;这是其从小鹏汽车离开加入NVIDIA之后的首次公开亮相。 吴目前担任NVIDIA汽车事业部副总裁&#xff0c;全面负责NVIDIA的车载计算产品线DRIVE平台的产品定义以及工程落地工作。吴新宙最广为人知的经历&#xf…

3.28C++

复数类的实现&#xff0c;写出三种构造函数&#xff0c;算术运算符、关系运算符、逻辑运算符重载尝试实现自增、自减运算符的重载 #include <iostream> using namespace std; class Num {int rel; //实部int vir; //虚部 public:Num():rel(2),vir(1){}Num(int rel,…

深入解析RSA算法原理及其安全性机制

码到三十五 &#xff1a; 个人主页 心中有诗画&#xff0c;指尖舞代码&#xff0c;目光览世界&#xff0c;步履越千山&#xff0c;人间尽值得 ! 目录 一、RSA算法简介二、RSA算法原理2.1 背景与数学基础2.2 密钥生成2.3 加密过程2.4 解密过程 三、安全性考虑四、RSA的使用五、…

数据结构进阶篇 之 【二叉树链序存储】的整体实现讲解

封建迷信我嗤之以鼻&#xff0c;财神殿前我长跪不起 一、二叉树链式结构的实现 1.二叉树的创建 1.1 手动创建 1.2 前序递归创建 2.二叉树的遍历 2.1 前序&#xff0c;中序以及后序遍历概念 2.2 层序遍历概念 2.3 前序打印实现 2.4 中序打印实现 2.4 后序打印实现 2.…

SpringBoot项目启动成功,但是调用接口直接报NOT FOUND 404

问题描述 SpringBoot项目启动成功&#xff0c;但是调用接口直接报NOT FOUND 404 解决办法 启动类中ComponentScan(basePackages {“com.afclab”})中的扫包路径和项目路径不一样&#xff0c;导致扫不到Controller等组件&#xff0c;修改成和项目路径一样就可以解决&#xf…

MYSQL高阶语句(一)

目录 一、常用查询 1、order by 按关键字排序 1.升序排序 2.降序排序 3.结合where进行条件过滤再排序 4.多字段排序 2、区间判断及查询不重复记录 1. and / or 且与或的使用 2.嵌套、多条件使用 3.distinct 查询不重复记录 3、GROUP BY 对结果进行分组 4、Li…

独立站攻略|如何使用SEO代理优化网站排名?

每天&#xff0c;互联网上都会生成和共享大量信息&#xff0c;这使得预测哪个关键字或主题将成为趋势变得很有挑战性&#xff0c;因此人们可以预测和优化他们的搜索引擎排名。但使用“SEO 代理”&#xff0c;就会使得SEO优化更加有效且精准。 一、什么是SEO&#xff1f; 简而言…

2024 年广西职业院校技能大赛高职组《云计算应用》赛项样卷

#需要资源&#xff08;软件包及镜像&#xff09;或有问题的&#xff0c;可私博主&#xff01;&#xff01;&#xff01; #需要资源&#xff08;软件包及镜像&#xff09;或有问题的&#xff0c;可私博主&#xff01;&#xff01;&#xff01; #需要资源&#xff08;软件包及镜…

Ainx的多路由模式

&#x1f4d5;作者简介&#xff1a; 过去日记&#xff0c;致力于Java、GoLang,Rust等多种编程语言&#xff0c;热爱技术&#xff0c;喜欢游戏的博主。 &#x1f4d7;本文收录于Ainx系列&#xff0c;大家有兴趣的可以看一看 &#x1f4d8;相关专栏Rust初阶教程、go语言基础系列…

ubuntu的常用操作

一、用户 1.1 创建新用户 1.1.1 添加、修改、删除 1.2 超级用户root 切换到root用户&#xff0c;有全部权限&#xff0c;可以直接使用任何命令。 我们在什么时候才会切换到root用户进行操作呢&#xff1f;当我们使用某些命令&#xff0c;不想前面一直加sudo的话&#xff0c;…

2024年【道路运输企业主要负责人】考试题库及道路运输企业主要负责人报名考试

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 道路运输企业主要负责人考试题库根据新道路运输企业主要负责人考试大纲要求&#xff0c;安全生产模拟考试一点通将道路运输企业主要负责人模拟考试试题进行汇编&#xff0c;组成一套道路运输企业主要负责人全真模拟考…

冥想打坐睡觉功法

睡觉把手机放远一点&#xff0c;有电磁辐射&#xff0c;我把睡觉功法交给你&#xff0c;这样就可以睡好了。

『大模型笔记』提示工程、微调和RAG之间对比

提示工程、微调和RAG之间对比 文章目录 一. 提示工程、微调和RAG之间对比二. 参考文章文章:Prompt Engineering vs Finetuning vs RAG一. 提示工程、微调和RAG之间对比 Prompt EngineeringFinetuning

逆向工程-Nag.exe

初步分析 首先&#xff0c;打开文件&#xff0c;进行文件初步探索。 然后&#xff0c;点击OK发现删除本界面并跳转到新的界面&#xff0c;并且需要我们去除弹出的窗口。 正式分析 拖拽进IDA Pro 和OllyDbg中进行分析。 根据我们初步测试的结果&#xff0c;我们知道一个重要线索…

Vercel应用绑定自己的域名

准备域名 首先购买自己的域名&#xff0c;可以选择以下渠道进行购买&#xff1a; NamesiloGodaddy腾讯云阿里云 另外你还可以选择从以下平台获取到免费的域名&#xff1a; Freenomeu.org 欧盟组织的免费域名, 需要英国的用户信息才能注册; 在我看来免费的才是最贵的&#…

Rsyslog 日志集中管理实验

1.使用 进行日志集中管理 C/S 架构&#xff1a;客户端将其日志上传到服务器端&#xff0c;通过对服务器端日志的查询&#xff0c;来实现对其他客户端的日志进行集中管理 2.两台机器&#xff1a; &#xff08;server&#xff09;host-5(192.168.1.2)<------------>(192…

一招让你的薪水暴增,每个程序员都应该学会跟老板提加薪

为什么要学会薪资谈判&#xff1f; 在最近的一篇文章中&#xff0c;职业专家奥斯汀贝尔卡克 (Austin Belcak ) 解释了进行一点薪资谈判如何对您的长期收入产生巨大影响。 这是奥斯汀在他的薪资谈判示例中描绘的场景&#xff1a; Amari 和 Taylor 的年薪均为 50,000 美元 未来…

【QT入门】 Qt代码创建布局之水平布局、竖直布局详解

往期回顾&#xff1a; 【QT入门】 Qt实现自定义信号-CSDN博客 【QT入门】 Qt自定义信号后跨线程发送信号-CSDN博客 【QT入门】 Qt内存管理机制详解-CSDN博客 【QT入门】 Qt代码创建布局之水平布局、竖直布局详解 先看两个问题&#xff1a; 1、ui设计器设计界面很方便&#xf…