本篇文章主要介绍了" spring boot 利用redisson实现redis的分布式锁",主要涉及到方面的内容,对于其他数据库感兴趣的同学可以参考一下:
利用redis实现分布式锁,网上搜索的大部分是使用java jedis实现的。redis官方推荐的分布式锁实现为redisson http://ifeve.co...
利用redis实现分布式锁,网上搜索的大部分是使用java jedis实现的。
redis官方推荐的分布式锁实现为redisson http://ifeve.com/redis-lock/
以下为spring boot实现分布式锁的步骤
项目pom中需要添加官方依赖 我是1.8JDK固为
org.redisson
redisson
3.4.2
定义一个分布式锁的回调类
package com.example.demo.redis2;
/**
* 分布式锁回调接口
*
* @author lk
*/
public interface DistributedLockCallback {
/**
* 调用者必须在此方法中实现需要加分布式锁的业务逻辑
*
* @return
*/
public T process();
/**
* 得到分布式锁名称
*
* @return
*/
public String getLockName();
}
分布式锁操作模板
package com.example.demo.redis2;
import java.util.concurrent.TimeUnit;
/**
* 分布式锁操作模板
*
* @author lk
*/
public interface DistributedLockTemplate {
/**
* 使用分布式锁,使用锁默认超时时间。
*
* @param callback
* @return
*/
public T lock(DistributedLockCallback callback);
/**
* 使用分布式锁。自定义锁的超时时间
*
* @param callback
* @param leaseTime 锁超时时间。超时后自动释放锁。
* @param timeUnit
* @return
*/
public T lock(DistributedLockCallback callback, long leaseTime, TimeUnit timeUnit);
}
使用redisson最简单的Single instance mode实现分布式锁模板接口