什么是 node-cache?
node-cache 是一个轻量级库,用于在 Node.js 应用程序中进行内部数据缓存。它作为 in-memory store(内存存储)运行,允许临时保存计算结果、API 响应或数据库数据,从而避免重复执行繁重操作。
为什么在 JavaScript 中需要缓存?
缓存对性能至关重要。没有缓存,每个服务器请求都可能导致重复调用外部服务、数据库查询或复杂计算。node-cache 通过将数据保存在内存中并设置生存时间(TTL)来解决此问题。对于频繁请求的数据,这可将服务器负载降低 2–5 倍,并缩短响应时间。
安装
要安装该库,请在项目根目录中执行以下命令:
npm install node-cache安装后,在代码中引入模块:
const NodeCache = require('node-cache');主要功能
- set(key, value, [ttl]) — 按键保存值,并可选择以秒为单位设置生存时间。
- get(key) — 返回保存的值,如果未找到键或已过期,则返回 undefined。
- has(key) — 检查键是否存在(返回 true/false)。
- del(key) — 删除一个或多个键。
- flushAll() — 清除所有缓存。
- keys() — 返回所有活动键的数组。
- getStats() — 统计信息:hits、misses、keys、ksize 和 vsize。
Node.js 代码示例
const NodeCache = require('node-cache');const myCache = new NodeCache({ stdTTL: 600, checkperiod: 120 });
// 保存数据myCache.set('user_123', { name: 'Alice', role: 'admin' }, 300);
// 提取数据const user = myCache.get('user_123');if (user === undefined) { console.log('缓存为空,从数据库请求');} else { console.log('来自缓存的数据:', user);}
// 统计信息console.log(myCache.getStats());// { hits: 1, misses: 0, keys: 1, ksize: 8, vsize: 32 }何时使用 node-cache?
该库非常适合以下场景:
- 缓存 API 响应 — 避免重复请求外部服务(例如天气、汇率)。
- 繁重计算的结果 — 将数据处理结果保存 5–10 分钟。
- 会话数据 — 临时存储用户令牌或设置。
- 微服务之间的中间缓存 — 减少网络调用。
重要提示: node-cache 不适用于分布式系统(仅在一个进程的内存中工作)。对于分布式缓存,请使用 Redis 或 Memcached。
结论
node-cache 是 Node.js 中用于 in-memory 缓存的极简且可靠的解决方案。它无需配置外部服务,易于集成,并能显著加速应用程序。从今天开始,只需添加几行代码即可使用它。