@shagital/atomic-lock
Version:
Universal atomic locking with pluggable drivers (Redis, SQLite, File, Memory)
20 lines (19 loc) • 802 B
TypeScript
import { LockDriver, LockInfo, RedisConfig } from '../types';
/**
* Redis driver implementation using ioredis
*/
export declare class RedisLockDriver implements LockDriver {
private config;
private client;
constructor(config: RedisConfig);
private createRedisClient;
tryAcquire(key: string, lockValue: string, expiryInSeconds: number): Promise<boolean>;
tryAcquireMultiple(keys: string[], lockValue: string, expiryInSeconds: number): Promise<boolean>;
release(key: string, lockValue: string): Promise<boolean>;
releaseMultiple(keys: string[], lockValue: string): Promise<number>;
exists(key: string): Promise<boolean>;
getLockInfo(key: string): Promise<LockInfo | null>;
cleanup(): Promise<void>;
close(): Promise<void>;
private getTtlFromValue;
}