@pisell/pisellos
Version:
一个可扩展的前端模块化SDK框架,支持插件系统
79 lines (78 loc) • 1.93 kB
TypeScript
/**
* LRU缓存类,用于缓存接口数据
* 限制最多存储100条数据,超过时移除最久未使用的数据
* 支持数据压缩以减小缓存压力
* 尾部优先策略:新节点插入尾部,最近使用的节点移动到尾部,删除头部节点
*/
declare class LRUCache<T> {
private head;
private tail;
private keyMap;
private readonly maxSize;
constructor(maxSize?: number);
/**
* 将节点移动到链表尾部(最近使用)
* @param node 要移动的节点
*/
private moveToTail;
/**
* 添加新节点到链表尾部
* @param key 缓存键
* @param compressedData 压缩后的数据
* @param timestamp 时间戳
*/
private addToTail;
/**
* 从链表中移除节点
* @param node 要移除的节点
*/
private removeNode;
/**
* 移除最久未使用的节点(链表头部)
*/
private removeOldest;
/**
* 设置缓存
* @param key 缓存键
* @param data 缓存数据
*/
set(key: string, data: T): void;
/**
* 获取缓存
* @param key 缓存键
* @returns 缓存数据或undefined
*/
get(key: string): T | undefined;
/**
* 检查是否存在缓存
* @param key 缓存键
* @returns 是否存在
*/
has(key: string): boolean;
/**
* 清除所有缓存
*/
clear(): void;
/**
* 获取缓存大小
* @returns 当前缓存数量
*/
size(): number;
/**
* 获取缓存统计信息
* @returns 缓存统计信息
*/
getStats(): {
size: number;
maxSize: number;
usage: number;
};
/**
* 删除指定的缓存项
* @param key 要删除的缓存键
* @returns 是否删除成功
*/
delete(key: string): boolean;
}
declare const scanCache: LRUCache<any>;
export default scanCache;