johnycash
Version:
Easy distributed caching for Node.js
65 lines • 3.64 kB
TypeScript
import Redis from 'ioredis';
export interface Logger {
log(message: string, ...args: any[]): void;
error(message: string, ...args: any[]): void;
warn(message: string, ...args: any[]): void;
}
export declare class RedisCacheService {
private redis;
private logger;
constructor(redis: Redis, logger?: Logger);
get<T>(key: string): Promise<T | undefined>;
getMany<T>(keys: string[]): Promise<(T | undefined | null)[]>;
setnx<T>(key: string, value: T, cacheNullable?: boolean): Promise<boolean>;
set<T>(key: string, value: T, ttl?: number | null, cacheNullable?: boolean): Promise<void>;
setMany<T>(keys: string[], values: T[], ttl: number, cacheNullable?: boolean): Promise<void>;
expire(key: string, ttl: number): Promise<void>;
pexpire(key: string, ttl: number): Promise<void>;
delete(key: string): Promise<void>;
deleteMany(keys: string[]): Promise<void>;
deleteByPattern(keyPattern: string): Promise<void>;
flushDb(): Promise<void>;
getOrSet<T>(key: string, createValueFunc: () => Promise<T>, ttl: number, cacheNullable?: boolean): Promise<T>;
setOrUpdate<T>(key: string, createValueFunc: () => Promise<T>, ttl: number, cacheNullable?: boolean): Promise<T>;
scan(pattern: string): Promise<string[]>;
increment(key: string, ttl?: number | null): Promise<number>;
incrby(key: string, value: number | string): Promise<number>;
decrement(key: string, ttl?: number | null): Promise<number>;
hget<T>(hash: string, field: string): Promise<T | null>;
hgetall(hash: string): Promise<Record<string, any> | null>;
hset<T>(hash: string, field: string, value: T, cacheNullable?: boolean): Promise<number>;
hsetMany(hash: string, fieldsValues: [string, any][], cacheNullable?: boolean): Promise<number>;
hincrby(hash: string, field: string, value: number | string): Promise<number>;
hkeys(hash: string): Promise<string[]>;
zadd(key: string, member: string, value: number, options?: string[]): Promise<string | number>;
zincrby(key: string, member: string, increment: number): Promise<string>;
zrank(key: string, member: string): Promise<number | null>;
keys(key: string): Promise<string[]>;
zrevrank(key: string, member: string): Promise<number | null>;
sadd(key: string, ...values: string[]): Promise<number | null>;
sunionstore(destination: string, keys: string[]): Promise<number>;
smembers(key: string): Promise<string[]>;
zrevrange(setName: string, start: number, stop: number, withScores?: boolean): Promise<string[]>;
zrangebyscore(setName: string, start: number | string, stop: number | string, options?: {
withScores?: boolean;
}): Promise<string[]>;
zrange(setName: string, start: number | string, stop: number | string, options?: {
order?: 'REV' | undefined;
withScores?: boolean;
}): Promise<string[]>;
zmscore(setName: string, ...args: string[]): Promise<(string | null)[]>;
scard(key: string): Promise<number>;
zcount(key: string, min: number | '-inf', max: number | '+inf'): Promise<number>;
defineCommand(name: string, definition: {
lua: string;
numberOfKeys?: number;
readOnly?: boolean;
}): void;
executeCommand(name: string, ...args: (string | Buffer | number)[]): Promise<unknown>;
rpush(key: string, items: any): Promise<void>;
lrange(key: string, start?: number, stop?: number): Promise<string[]>;
lpop(key: string): Promise<string[]>;
private buildInternalCreateValueFunc;
asyncMulti: (commands: any[]) => Promise<any>;
}
//# sourceMappingURL=redis-cache.service.d.ts.map