UNPKG

@pisell/pisellos

Version:

一个可扩展的前端模块化SDK框架,支持插件系统

79 lines (78 loc) 1.93 kB
/** * 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;