Redisson提供了多种 “分布式锁” 供开发者使用, 包括“可重入锁” “一次性锁” “联锁” “红锁” 以及 “读写锁” 等,
每一种分布式锁实现的方式、适用的应用场景各不相同。而应用比较多的当属Redisson的“可重入锁” 以及 “一次性锁”。
可重入锁,顾名思义,指的是当前线程如果没能获取对公共资源的锁,将会等待一定对时间重新进行获取,在这个过程中
Redisson会提供一个重新获取锁的时间戳,并在调用 tryLock() 方法时进行指定。
一次性锁,指的是当前线程获取分布式锁时,如果成功则执行后续对共享资源的操作,否则将永远失败(有点“成者为王,败者为寇”的韵味),
其主要是通过调用lock()方法获取锁。
不管最终是采用哪种方式实现分布式锁,其最终的目的都是为“执行对共享数据的操作”赢得足够的时间,从而可以很好地避免
多线程对共享资源的并发访问,避免出现并发安全的问题,最终保证数据的一致性。
对于Redisson而言,其适用的应用场景还远远不止于此,目前它涉足的领域还包括分布式的大数据处理、Web应用会话集群以及
微服务架构实施等业务场景。
官网:
https://redisson.org
参考:
https://www.zhihu.com/question/376677241
https://www.jianshu.com/p/8853b34f7c8b