redisson分布式锁的基础使用

1、配置redis连接

springboot 2.2.x以上版本只需配置redis无需另外配置redisson

2、使用方式

java 复制代码
import cn.hutool.extra.spring.SpringUtil;

import java.util.concurrent.TimeUnit;

public class LockUtil {

    private final static RedissonClient redisson = SpringUtil.getBean(RedissonClient.client.class);

    public static void redissonLock(String key, Runnable runnable) throws Exception {
        // 引入redis分布式锁
        RLock lock = redisson.getLock(key);
        try {
            // 尝试获取锁,最多等待 10 秒,锁自动过期时间为 5 秒
            boolean isLocked = lock.tryLock(10, 5, TimeUnit.SECONDS);
            if (isLocked) {
                // todo 执行业务操作
                runnable.run();
            } else {
                // todo 未获取到锁时的处理
            }
        } finally {
            // 释放锁
            if (lock.isHeldByCurrentThread()) {
                lock.unlock();
            }
        }
    }
}
     
   

3、 使用要点

  1. 根据需求配置等待时间
  2. 处理未获取到锁的情况
  3. 执行操作过后需要采用finally去解锁
相关推荐
用户7344028193422 小时前
Java高并发缓存更新:ConcurrentHashMap与读写锁的实战解析
后端
用户7344028193422 小时前
springboot2如何发送邮件
后端
用户7344028193422 小时前
spring 定时任务Scheduler和异步任务Async
后端
爱敲代码的小鱼2 小时前
springboot案例:
java·spring boot·后端
Spanless2 小时前
定时任务线程池的使用
后端
用户7344028193422 小时前
Spring Boot 定时任务全攻略:从@Scheduled 到分布式调度,一文搞定!
后端
用户7344028193422 小时前
在 SpringBoot 中使用 ThreadPoolTaskScheduler 实现定时任务
后端
货拉拉技术2 小时前
Lalamove 代码瘦身实践
后端·代码规范
雨夜之寂2 小时前
能动手才推 · AI · 03/15
后端