目录
前文链接:
什么是分布式锁
修改秒杀优惠券的流程

分布式锁的实现
基于Redis的分布式锁(非阻塞实现)

ILock接口
public interface ILock {
/**
* 尝试获取锁
* @param timeoutSec 锁持有的过期时间,过期后自动释放
* @return true代表获取锁成功,false代表获取锁失败
*/
boolean trLock(long timeoutSec);
/**
* 释放锁
*/
void unlock();
}
创建一个类并实现ILock接口,用自定义的name值来区分锁,同时获取当前线程的Id作为value值存入进redis中,并设置超时时间
public class SimpleRedisLock implements ILock {
private static final String KEY_PREFIX="lock:";
private String name;
private StringRedisTemplate stringRedisTemplate;
public SimpleRedisLock(String name, StringRedisTemplate stringRedisTemplate) {
this.name = name;
this.stringRedisTemplate = stringRedisTemplate;
}
@Overri

最低0.47元/天 解锁文章
1756

被折叠的 条评论
为什么被折叠?



