Redisson getLock() 对于分布式锁的使用安全吗?
Is Redisson getLock() Safe for Distributed Lock Usage?
是Redisson的getLock()
method good for a distributed use case, and how does it compare to getRedLock()
吗?
Redisson(3.11.x)有几种实例化锁的方法:
getLock()
使用什么算法,分布式使用安全吗? documentation 说:
Implements a non-fair locking so doesn't guarantees an acquire order by threads.
我希望将 getLock()
与 getRedLock()
进行比较,后者似乎使用了 Redlock,并记录在 Redis 的 distlock
页面的顶层:https://redis.io/topics/distlock :
This page is an attempt to provide a more canonical algorithm to implement distributed locks with Redis. We propose an algorithm, called Redlock, which implements a DLM which we believe to be safer than the vanilla single instance approach.
Is Redisson's getLock() method good for a distributed use case, and how does it compare to getRedLock()?
所有 Redisson 锁都适合分布式用例。 RedLock 算法假定您在集群中的每个主节点都拥有锁。 RedLock 算法是一个命题,不幸的是没有关于它的实践使用的反馈。除了它的分析 https://martin.kleppmann.com/2016/02/08/how-to-do-distributed-locking.html
What algorithm does getLock() use, and is it safe for distributed usage?
RLock
对象在 Redis 中存储为单个对象。如果锁被释放,其他线程将通过 pubsub 侦听器得到通知。还有 lockWatchdogTimeout 设置允许定义时间,如果当前线程不活动,锁定将在该时间后强制释放。
更新
自 3.12.5 版本 getLock() 方法 returns 在故障转移期间锁定具有更高的可靠性。 getRedLock() 已被弃用。
是Redisson的getLock()
method good for a distributed use case, and how does it compare to getRedLock()
吗?
Redisson(3.11.x)有几种实例化锁的方法:
getLock()
使用什么算法,分布式使用安全吗? documentation 说:
Implements a non-fair locking so doesn't guarantees an acquire order by threads.
我希望将 getLock()
与 getRedLock()
进行比较,后者似乎使用了 Redlock,并记录在 Redis 的 distlock
页面的顶层:https://redis.io/topics/distlock :
This page is an attempt to provide a more canonical algorithm to implement distributed locks with Redis. We propose an algorithm, called Redlock, which implements a DLM which we believe to be safer than the vanilla single instance approach.
Is Redisson's getLock() method good for a distributed use case, and how does it compare to getRedLock()?
所有 Redisson 锁都适合分布式用例。 RedLock 算法假定您在集群中的每个主节点都拥有锁。 RedLock 算法是一个命题,不幸的是没有关于它的实践使用的反馈。除了它的分析 https://martin.kleppmann.com/2016/02/08/how-to-do-distributed-locking.html
What algorithm does getLock() use, and is it safe for distributed usage?
RLock
对象在 Redis 中存储为单个对象。如果锁被释放,其他线程将通过 pubsub 侦听器得到通知。还有 lockWatchdogTimeout 设置允许定义时间,如果当前线程不活动,锁定将在该时间后强制释放。
更新 自 3.12.5 版本 getLock() 方法 returns 在故障转移期间锁定具有更高的可靠性。 getRedLock() 已被弃用。