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去解锁
相关推荐
希望永不加班17 分钟前
SpringBoot 整合 MongoDB
java·spring boot·后端·mongodb·spring
Lzh编程小栈39 分钟前
数据结构与算法之队列深度解析:循环队列+C 语言硬核实现 + 面试考点全梳理
c语言·开发语言·汇编·数据结构·后端·算法·面试
妙蛙种子3111 小时前
【Java设计模式 | 创建者模式】工厂方法模式
java·后端·设计模式·工厂方法模式
freejackman3 小时前
Java从0到1---基础篇
java·开发语言·后端·idea
无心水3 小时前
20、Spring陷阱:Feign AOP切面为何失效?配置优先级如何“劫持”你的设置?
java·开发语言·后端·python·spring·java.time·java时间处理
0xDevNull3 小时前
Java 21 新特性概览与实战教程
java·开发语言·后端
Gse0a362g4 小时前
Go - Zerolog使用入门
开发语言·后端·golang
Renhao-Wan4 小时前
Docker 核心原理详解:镜像、容器、Namespace、Cgroups 与 UnionFS
java·后端·docker·容器
EFCY1MJ905 小时前
ASP.NET MVC 1.0 (五) ViewEngine 深入解析与应用实例
后端·asp.net·mvc
小江的记录本5 小时前
【RabbitMQ】RabbitMQ核心知识体系全解(5大核心模块:Exchange类型、消息确认机制、死信队列、延迟队列、镜像队列)
java·前端·分布式·后端·spring·rabbitmq·mvc