【Redisson】快速实现分布式锁
大家好,我是jstart千语。之前给大家分享过使用redis的set nx ex命令实现分布式锁。但手动的实现方式不仅麻烦,而且不好管理。实现出来的锁也是不可重入的,不可重试的。那么在要求比较高的系统中,就不太适用了。虽然说重入问题可以手动来解决,但总归也是不方便的。那么我们就需要一个更好用的工具了,就是redisson啦。
手动实现分布式锁的博客:【Redis】分布式锁的实现_redis分布式锁的实现-CSDN博客
1、手动实现分布式锁的缺点
不可重入 | 同一个线程无法多次获取同一把锁。例如在多个方法都要获取同一把锁时,因为锁没释放获取不了,就会造成死锁问题。 |
不可重试 | 获取锁时如果失败直接就返回了false,没有重试机制 |
超时释放 | 锁超时释放虽然可以避免死锁问题,但是一些业务本身耗时比较长,锁超时时间不好控制。redisson就有一个看门狗机制 |
主从一致性 | 如果redis提供了主从集群,如果锁的状态还没有同步给从节点,那么就会造成锁失效问题。 |
Redisson:在 redis 基础上实现的分布式工具的集合
2、快速开始
使用示例: