UNPKG

@gabrielpotter/lru-lfu-cache

Version:
62 lines (61 loc) 1.69 kB
export type CacheStrategy = "LRU" | "LFU"; export declare class UnifiedCache<K, V> { private capacity; private maxMemory; private strategy; private cacheMap; private lruList; private freqMap; private minFreq; private mutex; private currentMemory; private absHit; private absReq; private relHit; private relReq; private hitResetCounter; constructor(capacity: number, maxMemory: number, strategy?: CacheStrategy, hitReset?: number); clear(params?: { capacity?: number; maxMemory?: number; strategy?: CacheStrategy; hitReset?: number; }): Promise<void>; get(key: K): Promise<V | undefined>; getValueAndMeta(key: K): Promise<{ value: V; meta: { [key: string]: any; } | undefined; } | undefined>; getByMeta(callback: (meta: { [key: string]: any; }) => boolean): Promise<V[]>; getMeta(key: K): Promise<{ [key: string]: any; } | undefined>; test(key: K): Promise<boolean>; set(key: K, value: V, meta?: { [mkey: string]: any; }): Promise<void>; remove(key: K): Promise<void>; removeByMeta(callback: (meta: { [key: string]: any; }) => boolean): Promise<void>; private evict; private updateFrequency; private addToFreqMap; private removeFreqMap; private roughSizeOfObject; getStats(): { strategy: CacheStrategy; currentNodes: number; maxNodes: number; currentMemory: number; maxMemory: number; absHitRate: number; relHitRate: number; }; private sizeSuppressorReplacer; dump(): string; }