@jbagatta/johnny-cache
Version:
A robust distributed dictionary for coordinating and caching expensive operations in a distributed environment
26 lines (25 loc) • 1.08 kB
TypeScript
import { Redis } from "ioredis";
import { BuildReservation, DataStore } from "../../ports/data-store";
export declare class RedisDataStore implements DataStore {
private readonly client;
constructor(client: Redis);
tryReserve<V>(key: string, reservationExpiryMs: number): Promise<BuildReservation<V>>;
has(key: string): Promise<boolean>;
get<V>(key: string): Promise<BuildReservation<V> | null>;
tryUpdateReservation<V>(key: string, buildId: string, result: V, expiry?: number | undefined): Promise<boolean>;
delete(key: string): Promise<void>;
updateExpiry(key: string, expiry?: number): Promise<void>;
close(): void;
}
export declare const tryReserveAndReturnExistingBuildLuaScript: string;
export declare const tryUpdateReservationLuaScript: string;
export declare class RedisConnectionOptions {
sentinel?: {
host: string;
port: number;
primaryName: string;
};
url?: string;
password?: string;
}
export declare function createRedisDataStore(redisConnectionOptions: RedisConnectionOptions): RedisDataStore;