Linux下Node.js的缓存策略主要包括以下几类,可根据场景选择:
HTTP缓存
通过设置响应头(如Cache-Control
、ETag
)控制客户端或代理服务器缓存,适用于静态资源或低频更新数据。
res.set('Cache-Control', 'public, max-age=3600'); // 缓存1小时
内存缓存
Map
存储数据,适合临时数据。node-cache
:支持过期时间、自动清理。lru-cache
:基于LRU算法,适合缓存大小有限的场景。const NodeCache = require('node-cache');
const cache = new NodeCache({ stdTTL: 300 }); // 5分钟过期
cache.set('key', 'value');
文件缓存
将数据持久化存储到文件系统,适合需跨进程或重启后保留的缓存,如配置文件。
const fs = require('fs');
fs.writeFileSync('cache.json', JSON.stringify(data));
const cachedData = JSON.parse(fs.readFileSync('cache.json'));
分布式缓存
适用于多实例、高并发场景,通过Redis、Memcached等实现跨服务共享缓存。
const redis = require('redis');
const client = redis.createClient();
client.setex('key', 3600, JSON.stringify(data)); // 缓存1小时
其他策略
选择策略时需权衡数据一致性、性能需求和系统复杂度,例如高频数据用内存缓存,跨服务数据用分布式缓存。