UNPKG

@wenye123/redis-lock

Version:
49 lines (48 loc) 1.48 kB
import { Redis } from "ioredis"; export interface IOptions { /** ioredis实例 */ client: Redis; /** 键前缀 */ keyPrefix: string; } export default class { private keyPrefix; private redis; constructor(options: IOptions); private getKeyName; private getIdentifier; private sleep; private initLua; /** * 请求一个锁标志 * @param lockName 锁名字 * @param acquireTimeout 请求超时毫秒数,默认3000 * @param lockTimeout 锁过期毫秒数,默认5000 */ acquireLock(lockName: string, acquireTimeout?: number, lockTimeout?: number): Promise<string | null>; /** * 释放锁 * @param lockName 锁名字 * @param identifier 锁标志 */ releaseLock(lockName: string, identifier: string): Promise<boolean>; /** * 获取信号量 * @param sename 信号量名字 * @param limit 限制数 * @param timeout 信号量过期毫秒数,默认3000 */ acquireSemaphore(sename: string, limit: number, timeout?: number): Promise<string | null>; /** * 释放信号量 * @param sename 信号量名字 * @param identifier 信号量标识 */ releaseSemaphore(sename: string, identifier: string): Promise<boolean>; /** * 刷新信号量 * @param sename 信号量名字 * @param identifier 信号量标识符 */ refreshSemaphore(sename: string, identifier: string): Promise<boolean>; }