Toggle navigation
面试宝典
架构师课程
开源
文章
博客
SpringCloud
CloudAlibaba
SpringBoot
Spring Boot1.X
Spring Boot2.X
关于
登录
|
注册
支付宝扫一扫帮助发展吧~
微信扫一扫帮助发展吧~
如何将分布式锁封装的更优雅
尹吉欢
2020-09-01 12:39:26.0
0条评论
3458人阅读
版权声明:转载请先联系作者并标记出处。
java
redis
点击阅读全文
扫描下方二维码,加入Java方向技术交流讨论群。暗号:加群
去注册
去登录
登录后发表
去注册
去登录
登录后发表
分布式锁通常有很多选择,基于 Redis 的,基于 Zookeeper 的,基于数据库等等方案。 Redis 用于缓存数据,在项目中都有使用,所以使用 Redis 来做分布式锁的会稍微多些。 如果用 Redis 来做锁,可以直接用开源的方案,比如[redisson](https://github.com/redisson/redisson)。 最常见的使用方式如下所示: ```plain RLock lock = redisson.getLock("anyLock"); lock.lock(); run(); lock.unlock(); ``` 获取锁对象,调用 lock()加锁,执行业务逻辑,调用 unlock()释放锁。 尽管框架提供的使用方式已经很简洁了,但是我们还是有必要对锁做一层包装。做包装的目的是为了提高扩展性和易用性。 ## 抽象接口 如果说我们直接使用 redisson 的原生 API 做加锁,那么很多地方都会出现 RLock 相关的代码,突然有一天,由于某些原因,需要将锁进行替换,这个时候改动的范围就比较大了。每个使用了 RLock 的地方都得改。
首次访问,人机识别
扫描下方二维码回复
王老吉
获取解锁验证码
步骤:[ 打开微信 ]->[ 扫描上方二维码 ]->[ 关注
猿天地
的公众号] 输入
王老吉
获取验证码,即可永久解锁本站全部文章。
验证码:
(请输入)
提交