RedisQueuedLocks (aka RQL, aka RQL-lock) - distributed locks with "prioritized lock acquisition queue" capabilities based on the Redis Database. Each lock request is put into the request queue (each lock is hosted by its own queue separately from other queues) and processed in order of their priority: requests of a higher priority go first, requests of the same priority are processed in FIFO order. Each lock request lives some period of time (RTTL) (with requeue capabilities) which guarantees the request queue will never be stacked. In addition to the classic queued (FIFO) strategy RQL supports random (RANDOM) lock obtaining strategy when any acquirer from the lock queue can obtain the lock regardless the position in the queue. Supports lock request prioritization, Read/Write locks and Reentrant locks. Provides flexible invocation flow, parametrized limits (lock request ttl, lock ttl, queue ttl, lock attempts limit, fast failing, etc), zombie locks elimination, lock indexing, logging and instrumentation (and much more).
Required Ruby Version
>= 4.0
Authors
Rustam Ibragimov
Versions
-
2.0.0
-
source
- 2.0.0 source November 08, 2026 (310 KB)
-
-
1.24.0
-
source
- 1.24.0 source November 08, 2026 (309 KB)
-
-
1.23.1
-
source
- 1.23.1 source November 01, 2026 (261 KB)
-
-
1.23.0
-
source
- 1.23.0 source November 01, 2026 (259 KB)
-
-
1.22.0
-
source
- 1.22.0 source October 27, 2026 (235 KB)
-