Documentation / zerotal / lock / RedisLockDriver
Class: RedisLockDriver
Defined in: packages/core/src/lock/drivers/RedisLockDriver.ts:25
Redis-backed distributed lock driver.
Uses SET key owner NX EX ttl for atomic acquisition and a Lua script
for owner-guarded release. Safe across multiple server instances.
Requires Bun's built-in Redis client (available when the REDIS_URL
environment variable is set or via the global redis export from bun).
Implements
Constructors
Constructor
new RedisLockDriver(
_prefix?):RedisLockDriver
Defined in: packages/core/src/lock/drivers/RedisLockDriver.ts:26
Parameters
_prefix?
string = "zerotal_lock:"
Returns
RedisLockDriver
Methods
acquire()
acquire(
key,owner,ttlSeconds):Promise<boolean>
Defined in: packages/core/src/lock/drivers/RedisLockDriver.ts:32
Try to acquire the lock. Returns true when acquired, false if already
held by another owner and not yet expired.
Parameters
key
string
owner
string
ttlSeconds
number
Returns
Promise<boolean>
Implementation of
release()
release(
key,owner):Promise<boolean>
Defined in: packages/core/src/lock/drivers/RedisLockDriver.ts:46
Release the lock only if the caller is still the owner.
Returns true when released, false if the lock was held by someone else
(e.g. TTL expired and another process re-acquired).
Parameters
key
string
owner
string
Returns
Promise<boolean>
Implementation of
forceRelease()
forceRelease(
key):Promise<void>
Defined in: packages/core/src/lock/drivers/RedisLockDriver.ts:51
Unconditionally delete the lock regardless of owner.
Parameters
key
string
Returns
Promise<void>
Implementation of
exists()
exists(
key):Promise<boolean>
Defined in: packages/core/src/lock/drivers/RedisLockDriver.ts:55
Returns true if the lock is currently held (not expired).
Parameters
key
string
Returns
Promise<boolean>