1.Redisson 实现分布式锁的好处
Redisson 是在于Redis 基础上设计的一款操作便捷,有着更高便捷度的综合中间件。Redisson 针对分布式锁提供了一些API 十分简单高效。
对redis 分布式锁还没概念的同学可参考一下这篇文章《简析Redis 缓存穿透、缓存击穿、缓存雪崩以及解决方案;redis 分布式锁》
https://blog.csdn.net/weixin_44012027/article/details/111187698
<dependency>
<groupId>org.redisson</groupId>
<artifactId>redisson</artifactId>
<version>3.10.6</version>
</dependency>
比较核心的代码
@Autowired
private RedissonClient redissonClient;
// 锁名称
final String lockName = " lockName";
// 获取锁
RLock lock = redissonClient.getLock(lockName);
try {
// try lock : 尝试获取到锁;若获取不到锁在10秒内重新尝试获取锁(类似自旋锁); 获取到锁10秒后释放锁。
boolean getLock = lock.tryLock(10, 10, TimeUnit.SECONDS);
if (getLock) {
// to do something
}
} catch (Exception e) {
} finally {
// 释放锁
lock.unlock();
}