redisson分布式锁的用法大全

2025-05-29 0 23

Redisson是Redis官方推荐的Java版的Redis客户端。它提供的功能非常多,此处我们只用它的分布式锁功能。

以springboot整合Redisson项目为例

添加springboot maven依赖

?

1

2

3

4

5
<dependency>

<groupId>org.redisson</groupId>

<artifactId>redisson-spring-boot-starter</artifactId>

<version>3.15.1</version>

</dependency>

配置 redisson就不细讲了,咱们这边用默认配置,什么都不用配
编写测试代码

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31
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);

}

}

默认情况下redisson分布式锁的超时时间为30秒,在锁即将超时的情况下redisson会检查拿到锁的线程id是否存活,如果线程存活redisson会对超时时间进行续期

redissonClient.getLock方法返回的接口类型为
org.redisson.api.RLock
查看源码,可以看到RLock继承了java.util.concurrent.locks.Lock接口

redisson分布式锁的用法大全

可以无缝对接使用Lock的业务场景,实现设计和传递

到此这篇关于redisson分布式锁的用法大全的文章就介绍到这了,更多相关redisson分布式锁内容请搜索快网idc以前的文章或继续浏览下面的相关文章希望大家以后多多支持快网idc!

原文链接:https://blog.csdn.net/qq_41560011/article/details/114935953

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 redisson分布式锁的用法大全 https://www.kuaiidc.com/108299.html

相关文章

发表评论
暂无评论