ioredis-cache
Version:
A promise-based cache package for Nodejs using IORedis
36 lines (35 loc) • 1.75 kB
TypeScript
import type Redis from "ioredis";
import type { RedisKey } from "ioredis";
import type { AcquiredResult, AcquireDesire, AcquireOptionsInput, AcquireOptions } from "./Acquire";
declare type Key = RedisKey | number;
declare type Awaitable<T> = T | Promise<T>;
export declare class LuaAcquire {
private readonly redis;
constructor(redis: Redis);
acquire<T>(key: Key, amount: number, fn: (currentAmount: number, acquiredAmount: number, lackingAmount: number) => Awaitable<T>, options?: AcquireOptionsInput): Promise<T>;
hashAcquire<T>(hashKey: Key, id: Key, amount: number, fn: (currentAmount: number, acquiredAmount: number, lackingAmount: number) => Awaitable<T>, options?: AcquireOptionsInput): Promise<T>;
acquireMany<K extends string | number, T>(items: AcquireDesire<K>[], fn: (acquireResult: AcquiredResult<K>[]) => Awaitable<T>, options?: AcquireOptions): Promise<T>;
hashAcquireMany<K extends string | number, T>(hashKey: string, items: AcquireDesire<K>[], fn: (acquireResult: AcquiredResult<K>[]) => Awaitable<T>, options?: AcquireOptions): Promise<T>;
private runAcquireManyScript;
private acquireSingle;
private hashAcquireSingle;
private getChangeCommand;
private getHashChangeCommand;
private runHashAcquireManyScript;
private runAcquireCallback;
private releaseMany;
private hashReleaseMany;
private runDynamicKeyReleaseScript;
private runFixedKeyReleaseScript;
private defineCommands;
private get luaRedis();
private buildAcquireArgs;
private buildHashAcquireArgs;
private buildReleaseArgs;
private buildHashReleaseArgs;
private getFloatFlag;
private parseAcquiredRows;
private isLuaRow;
private getAcquiredReleaseItems;
}
export {};