redisson分布式鎖的用法大全
Redisson是Redis官方推薦的Java版的Redis客戶端。它提供的功能非常多,此處我們只用它的分布式鎖功能。
以springboot整合Redisson項(xiàng)目為例
添加springboot maven依賴
<dependency> <groupId>org.redisson</groupId> <artifactId>redisson-spring-boot-starter</artifactId> <version>3.15.1</version> </dependency>
配置 redisson就不細(xì)講了,咱們這邊用默認(rèn)配置,什么都不用配
編寫(xiě)測(cè)試代碼
package com.miyou;
import org.junit.jupiter.api.Test;
import org.redisson.api.RedissonClient;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.concurrent.locks.Lock;
public class DefaultTest extends UserRightsApplicationTests {
@Autowired
private RedissonClient redissonClient;
@Test
public void testLock() throws InterruptedException {
Lock lock = redissonClient.getLock("test lock");
lock.lock();
System.out.println("鎖獲取成功");
new Thread(()->{
Lock rLock2 = redissonClient.getLock("test lock");
rLock2.lock();
System.out.println("線程2獲取鎖成功!");
rLock2.unlock();
}).start();
Thread.sleep(20000);
System.out.println("主線程釋放鎖");
lock.unlock();
Thread.sleep(1200000);
}
}
默認(rèn)情況下redisson分布式鎖的超時(shí)時(shí)間為30秒,在鎖即將超時(shí)的情況下redisson會(huì)檢查拿到鎖的線程id是否存活,如果線程存活redisson會(huì)對(duì)超時(shí)時(shí)間進(jìn)行續(xù)期
redissonClient.getLock方法返回的接口類型為
org.redisson.api.RLock
查看源碼,可以看到RLock繼承了java.util.concurrent.locks.Lock接口

可以無(wú)縫對(duì)接使用Lock的業(yè)務(wù)場(chǎng)景,實(shí)現(xiàn)設(shè)計(jì)和傳遞
到此這篇關(guān)于redisson分布式鎖的用法大全的文章就介紹到這了,更多相關(guān)redisson分布式鎖內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Redis:Redisson分布式鎖的使用方式(推薦使用)
- Java使用Redisson分布式鎖實(shí)現(xiàn)原理
- redis和redisson實(shí)現(xiàn)分布式鎖的操作方法
- Redisson如何解決redis分布式鎖過(guò)期時(shí)間到了業(yè)務(wù)沒(méi)執(zhí)行完問(wèn)題
- redis分布式鎖RedissonLock的實(shí)現(xiàn)細(xì)節(jié)解析
- Java redisson實(shí)現(xiàn)分布式鎖原理詳解
- Redisson如何解決Redis分布式鎖提前釋放問(wèn)題
- Redis集群利用Redisson實(shí)現(xiàn)分布式鎖方式
- 基于Redis分布式鎖Redisson及SpringBoot集成Redisson
- Java實(shí)現(xiàn)Redisson分布式鎖的10大陷阱與避坑指南
相關(guān)文章
IntelliJ IDEA使用git初始化倉(cāng)庫(kù)的使用方法
這篇文章主要介紹了IntelliJ IDEA使用git初始化倉(cāng)庫(kù)的使用方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-04-04
基于java實(shí)現(xiàn)DFA算法代碼實(shí)例
這篇文章主要介紹了基于java實(shí)現(xiàn)DFA算法代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-09-09
解決mybatis resultMap根據(jù)type找不到對(duì)應(yīng)的包問(wèn)題
這篇文章主要介紹了解決mybatis resultMap根據(jù)type找不到對(duì)應(yīng)的包問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-08-08
Java實(shí)現(xiàn)Excel轉(zhuǎn)化為圖片的代碼詳解
在實(shí)際開(kāi)發(fā)里,常常存在將Excel表格或特定區(qū)域轉(zhuǎn)換為圖片,以便在其他軟件中使用的需求,在Java開(kāi)發(fā)中,借助報(bào)表插件能夠輕松實(shí)現(xiàn)將工作表、任意指定區(qū)域以及各種形狀類型轉(zhuǎn)換為圖片,本文將詳細(xì)介紹如何使用Java達(dá)成Excel到圖片的轉(zhuǎn)化,需要的朋友可以參考下2025-08-08
IDEA中的pom.xml文件無(wú)法識(shí)別問(wèn)題及解決
這篇文章主要介紹了IDEA中的pom.xml文件無(wú)法識(shí)別問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-11-11
springboot+chatgpt+chatUI Pro開(kāi)發(fā)智能聊天工具的實(shí)踐
本文主要介紹了springboot+chatgpt+chatUI Pro開(kāi)發(fā)智能聊天工具的實(shí)踐,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-04-04
Spring中的底層架構(gòu)核心概念類型轉(zhuǎn)換器詳解
這篇文章主要介紹了Spring中的底層架構(gòu)核心概念類型轉(zhuǎn)換器詳解,本文結(jié)合示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-12-12

