【分布式锁】SpringBoot集成Redisson实现分布式可重入锁

本文详细介绍了如何在SpringBoot应用中使用Redisson来实现分布式可重入锁,包括最小化的配置步骤,如设置Redis连接、引入依赖、配置Redisson以及编写加锁和释放锁的代码。通过这种方式,可以解决多节点并发访问同一资源的问题,确保数据一致性。
摘要由CSDN通过智能技术生成


前言

本文将使用最小可行步骤,实现SpringBoot中使用Redisson实现分布式可重入锁。


一、实现分布式锁的方式

  1. 基于数据库
  2. 基于Redis
  3. 基于Zookeeper
  4. 基于Chubby
  5. 基于etcd

二、Redis-Redisson的锁

  1. 可重入锁
  2. 读写锁
  3. 红锁
  4. 公平锁
  5. 联锁

本文实现的是 可重入锁

三、动前须知

  1. 实现默认可重入锁
RLock myLock = redissonClient.getLock("锁的名称");
myLock.lock();

上述代码有如下特点

  • 阻塞式等待。默认加的锁都是30秒时间
  • 看门狗机制。锁会自动续期,只要占锁成功就会启动一个定时任务,每10秒续期一次,重置时间为新的30s。当业务完成时,就不再续期。
  1. 实现自己定义时间的可重入锁
RLock myLock = redissonClient.getLock("锁的名称");
myLock.lock(10,TimeUnit.SECONDS);

上述代码有如下特点

  • 10s后自动解锁。不会自动续期,如果此时业务没执行完就有问题了。

四、SpringBoot+Redisson实现可重入锁的最简步骤

1. 正在运行的Redis

启动docker后,运行下列docker命令可直接在本地启动redis

docker pull redis
docker run --restart=always -p 6379:6379 --name redis -d redis  --requirepass 123456

2. pom.xml中引入必备依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
    <groupId>org.redisson</groupId>
    <artifactId>redisson-spring-boot-starter</artifactId>
</dependency>

3. 将SpringBoot与redis连接起来

spring:
  redis:
    host:
  • 32
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值