CacheManager 缓存管理器
模块:
src/core/CacheManager.ts(公开导出:require('schema-dsl').CacheManager)
用途: 高性能 Schema 编译缓存,支持 LRU 淘汰和 TTL 过期
📑 目录
概述
CacheManager 是 schema-dsl 的内部缓存系统,用于缓存编译后的 Schema 验证函数,避免重复编译带来的性能开销。
核心功能
- ✅ LRU(最近最少使用)淘汰策略
- ✅ TTL(生存时间)过期机制
- ✅ 命中率统计
- ✅ 可配置的缓存大小
- ✅ 自动清理过期缓存
快速开始
API 参考
构造函数
参数:
get(key)
获取缓存值。
返回值:
- 命中:返回缓存的值
- 未命中或过期:返回
null
行为:
- 更新访问时间(LRU)
- 增加访问计数
- 将条目移到队列末尾
set(key, value, ttl?)
设置缓存值。
行为:
- 如果达到最大容量,自动淘汰最久未使用的条目
- 记录创建时间和访问时间
delete(key)
删除缓存条目。
has(key)
检查缓存是否存在(不更新访问时间)。
clear()
清空所有缓存。
getStats()
获取缓存统计信息。
resetStats()
重置统计信息。
size()
获取当前缓存条目数量。
配置选项
缓存大小
TTL 设置
禁用缓存
统计信息
命中率分析
监控仪表板
最佳实践
1. 合理设置缓存大小
2. 开发环境禁用缓存
3. 定期检查性能
4. 在 Schema 更新时清除缓存
LRU 淘汰机制
当缓存达到最大容量时,自动淘汰最久未使用的条目:
相关文档
对应示例文件
示例入口: cache-manager.ts
说明: 覆盖 set/get/has、LRU 淘汰、统计信息读取和 resetStats() 的实际行为。