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)文章希望大家以后多多支持腳本之家!
- 詳解Spring Cache使用Redisson分布式鎖解決緩存擊穿問(wèn)題
- 使用自定義注解實(shí)現(xiàn)redisson分布式鎖
- 詳解redis分布式鎖(優(yōu)化redis分布式鎖的過(guò)程及Redisson使用)
- SpringBoot整合Redisson實(shí)現(xiàn)分布式鎖
- Springboot中如何使用Redisson實(shí)現(xiàn)分布式鎖淺析
- Redisson實(shí)現(xiàn)Redis分布式鎖的幾種方式
- Java redisson實(shí)現(xiàn)分布式鎖原理詳解
- Redisson分布式鎖源碼解析
- redisson 實(shí)現(xiàn)分布式鎖的源碼解析
相關(guān)文章
autoMapping和autoMappingBehavior的區(qū)別及說(shuō)明
這篇文章主要介紹了autoMapping和autoMappingBehavior的區(qū)別及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-01-01
Maven多模塊之父子關(guān)系的創(chuàng)建
這篇文章主要介紹了Maven多模塊之父子關(guān)系的創(chuàng)建,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03
Java如何使用遞歸查詢多級(jí)樹(shù)形結(jié)構(gòu)數(shù)據(jù)(多級(jí)菜單)
這篇文章主要介紹了Java如何使用遞歸查詢多級(jí)樹(shù)形結(jié)構(gòu)數(shù)據(jù)(多級(jí)菜單),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-07-07
半小時(shí)實(shí)現(xiàn)Java手?jǐn)]網(wǎng)絡(luò)爬蟲(chóng)框架(附完整源碼)
最近在做一個(gè)搜索相關(guān)的項(xiàng)目,需要爬取網(wǎng)絡(luò)上的一些鏈接存儲(chǔ)到索引庫(kù)中,自己寫(xiě)了一個(gè)簡(jiǎn)單的網(wǎng)絡(luò)爬蟲(chóng),感興趣的可以了解一下2021-06-06
Java實(shí)現(xiàn)驗(yàn)證碼的產(chǎn)生和驗(yàn)證
這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)驗(yàn)證碼的產(chǎn)生和驗(yàn)證,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2012-01-01
Tomcat+Eclipse亂碼問(wèn)題解決方法與步驟
亂碼問(wèn)題是大家在日常開(kāi)發(fā)過(guò)程中經(jīng)常會(huì)遇到的問(wèn)題,由于各自環(huán)境的不同,解決起來(lái)也費(fèi)時(shí)費(fèi)力,本文主要介紹一般性亂碼問(wèn)題的解決方法與步驟,開(kāi)發(fā)工具采用Eclipse+Tomcat,統(tǒng)一設(shè)置項(xiàng)目編碼UTF-8為例,感興趣的朋友跟隨小編一起看看吧2023-08-08
Java中使用Preconditions來(lái)檢查傳入?yún)?shù)介紹
這篇文章主要介紹了Java中使用Preconditions來(lái)檢查傳入?yún)?shù)介紹,本文只是作為一個(gè)簡(jiǎn)單的用法介紹,需要的朋友可以參考下2015-06-06
Java利用HttpClient模擬POST表單操作應(yīng)用及注意事項(xiàng)
本文主要介紹JAVA中利用HttpClient模擬POST表單操作,希望對(duì)大家有所幫助。2016-04-04
spring?cloud?使用oauth2?問(wèn)題匯總
這篇文章主要介紹了spring?cloud?使用oauth2?問(wèn)題匯總,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-09-09

