代码层面配置缓存机制
- 使用 HTTP 缓存头:在 Next.js 的 API Routes 中,可以通过设置 HTTP 缓存头来启用缓存。例如,使用
res.setHeader
方法设置 Cache - Control
头。
export default function handler(req, res) {
// 设置缓存 1 小时
res.setHeader('Cache - Control', 'public, max - age = 3600');
res.status(200).json({ message: 'Cached response' });
}
- 内存缓存(简单示例):可以使用一个简单的内存对象来缓存数据。在处理请求时,先检查缓存中是否有数据。
let cache = {};
export default function handler(req, res) {
const key = req.url;
if (cache[key]) {
return res.status(200).json(cache[key]);
}
// 模拟数据获取
const data = { message: 'Fresh data' };
cache[key] = data;
res.status(200).json(data);
}
常见问题
- 缓存一致性:如果数据会频繁更新,需要确保缓存及时失效。例如,在数据更新操作后,要清除相关的缓存。
- 缓存粒度:设置合适的缓存粒度。过于粗粒度的缓存可能导致部分数据更新时整个缓存失效,而过于细粒度则可能增加缓存管理成本。
- 多实例部署:在多实例部署环境下,内存缓存可能会出现不一致问题。此时需要考虑使用分布式缓存,如 Redis。
- 安全问题:如果缓存涉及敏感数据,要确保缓存的安全性,比如设置合适的访问权限,防止缓存数据泄露。