Redisson

月伴飞鱼 2024-12-16 18:34:21
框架相关
支付宝打赏 微信打赏

如果文章对你有帮助,欢迎点击上方按钮打赏作者!

Redisson是一个在Redis的基础上实现的驻内存数据网格。

它不仅提供了一系列的分布式的常用对象,还提供了许多分布式服务,其中就包含了各种分布式锁的实现。

官网地址: https://redisson.org

GitHub地址: https://github.com/redisson/redisson

分布式锁应用场景

提升处理效率

  • 避免重复任务的执行,减少系统资源的浪费(例如幂等场景)。

保障数据一致性

  • 在多个微服务并发访问时,避免出现访问数据不一致的情况,造成数据丢失更新等情况。

以下是不同客户端并发访问时的场景:

1

分布式锁原理

67949d5ca4eca40c0790f5f2cdd61e34

可重入实现:

Redisson 实现可重入采用 Hash 的结构,在 Key 的位置记录锁的名称。

  • Field 的位置记录线程标识, Value 的位置则记录锁的重入次数。

加锁时,如果线程标识是自己,则锁的重入次数加 1,并重置锁的有效期。

释放锁时,重入次数减 1,并判断是否为 0,如果为 0 直接删除,否则重置锁的有效期。

2

重试与WatchDog流程:

3
支付宝打赏 微信打赏

如果文章对你有帮助,欢迎点击上方按钮打赏作者!