说在前面,Redis分布式锁的实现已经烂大街了。 很多人都写过博客,也有写的非常非常好的。 我这里纯属为了自己学习整理一下。 而且现在redis有一个超级牛逼的客户端 Redisson
原理主要是通过redis的nx自增来实现的。
下面就直接上代码
添加依赖
<dependency>
<groupId>org.springframework.integration</groupId>
<artifactId>spring-integration-redis</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
分布式锁的业务无关性完全可以抽成一个接口
public interface DistributedLockTemplate {
/**
* 执行方法
* @param lockId 锁id(对应业务唯一ID)
* @param timeout 最大等待获取锁时间
* @param unit 等待时间单位
* @param callback 回调方法
* @return
*/
Object execute