基于 redisson 实现的 spring boot starter 分布式锁框架,实现了可重入锁、公平锁、联锁、红锁、读写锁等常用锁的方式,并支持集群模式下的 redis 。
创建 Spring Boot 项目
引入 maven 依赖
<dependency>
org.august.spring.boot lock-spring-boot-starter 0.0.1-SNAPSHOT
在 Spring Boot 的项目配置文件 application.yml 中添加相应的配置,如:
lock-config:
pattern: single #redis模式配置,single:单机模式,cluster:集群模式,replicated:云托管模式,sentinel:哨兵模式,master_slave:主从模式 # 不同的redis模式对应不同的配置方式,single-server对应的就是单机模式,具体参数意义可参考redisson的配置参数说明 single-server: address: 127.0.0.1 port: 6379 password: 123456
在需要使用分布式锁的方法上面使用 @Lock 注解,锁的关键字使用 @Key ,如:
@Lock
public void hello(String ces, @Key String orderNo) { System.out.println(“hello”); }
如果需要配置不同类型的锁,可以直接变更 @Lock 的参数值即可,默认是可重入锁
@Lock 提供四个参数可以配置: lockType:锁类型 leaseTime:加锁时间 waitTime:最长等待时间 timeUnit:锁时长单位
DEMO 地址如下:https://gitee.com/yizhigui/lock-spring-boot-starter-demo