Redisson是基于redis实现的分布式锁
其中之一实现方式
String redisKey = "test";
RLock rLock = redissonClient.getLock(redisKey);
try {
boolean locked = rLock.tryLock(0, 30, TimeUnit.SECONDS);
if (locked) {
// 业务代码
} else {
// 获取锁失败
}
} catch (Exception e) {
} finally {
rLock.unlock();
}
tryLock(long waitTime, long leaseTime, TimeUnit unit)
tryLock的两个参数,waitTime标识等待获取锁的最大时间,leaseTime锁定时间,到期后可自动解锁。
tryLock是可重入锁,当前线程可多次获取锁,unlock只有获取锁的持有者才可以调用此方法。