@isaacs/ttlcache
是一个专注于基于TTL(Time To Live,生存时间)的缓存实现库,适用于Node.js环境。它允许你为缓存项设置过期时间,以便在数据过期后自动从缓存中移除。下面是一个简单的教程,帮助你快速上手使用@isaacs/ttlcache
。
安装
首先,你需要安装@isaacs/ttlcache
。可以通过npm来安装:
npm install @isaacs/ttlcache
基本用法
以下是如何创建一个TTL缓存实例,并添加、获取以及删除缓存项的基本示例:
1. 创建缓存实例
你可以通过导入@isaacs/ttlcache
并创建一个新的缓存实例开始:
const TTLCache = require('@isaacs/ttlcache');
let cache = new TTLCache({ max: 100, ttl: 1000 * 60 }); // 最大存储100项,每项默认TTL为1分钟
max
: 缓存可以容纳的最大项数。ttl
: 默认的TTL值(以毫秒为单位)。如果设置了此值,则每个缓存项将具有相同的TTL,除非在设置时另行指定。
2. 添加缓存项
你可以使用.set()
方法向缓存中添加新项:
cache.set('key1', 'value1'); // 使用默认TTL
cache.set('key2', 'value2', 1000 * 30); // 设置特定的TTL为30秒
3. 获取缓存项
使用.get()
方法可以从缓存中检索项。如果项已过期或不存在,则返回undefined
:
console.log(cache.get('key1')); // 输出 "value1" 或 undefined 如果已过期
4. 检查缓存项是否存在
如果你想检查某个键是否存在于缓存中(无论其是否过期),可以使用.has()
方法:
console.log(cache.has('key1')); // 输出 true 或 false
5. 删除缓存项
使用.delete()
方法可以手动删除缓存中的项:
cache.delete('key1');
6. 清空缓存
要清空整个缓存,可以调用.clear()
方法:
cache.clear();
高级用法
-
事件监听:你可以监听
'evict'
事件来捕获当缓存项因达到TTL或超出最大容量而被移除的情况:cache.on('evict', function (key, value) {console.log(`Evicted key: ${key}, value: ${value}`); });
-
自定义清理策略:虽然
@isaacs/ttlcache
会自动处理过期项的清理工作,但如果你有特殊需求,也可以实现自己的逻辑来管理缓存。
以上是关于@isaacs/ttlcache
的基础教程,可以帮助你快速了解如何在项目中使用该库进行数据缓存管理。根据你的具体需求,还可以进一步探索其更多高级功能和配置选项。