Distributed locks with "prioritized lock acquisition queue" capabilities based on the Redis Database. Provides flexible invocation flow, parametrized time limits, zombie locks elimination, instrumentation, logging, etc.
https://github.com/0exp/redis_queued_locks ↗// readme
RedisQueuedLocks ·
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 (FIFO). 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 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, logging and instrumentation (and much more).
For future features and updates check the ROADMAP section.
Table of Contents
- Requirements -…