MST
星途 面试题库

面试题:Next.js 中 API Routes 如何进行简单的缓存设置

在 Next.js 的 API Routes 场景下,阐述如何使用基础的缓存机制,以提升接口的响应性能,比如在代码层面如何配置?需要考虑哪些常见问题?
30.7万 热度难度
前端开发Next.js

知识考点

AI 面试

面试题答案

一键面试

代码层面配置缓存机制

  1. 使用 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' });
}
  1. 内存缓存(简单示例):可以使用一个简单的内存对象来缓存数据。在处理请求时,先检查缓存中是否有数据。
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);
}

常见问题

  1. 缓存一致性:如果数据会频繁更新,需要确保缓存及时失效。例如,在数据更新操作后,要清除相关的缓存。
  2. 缓存粒度:设置合适的缓存粒度。过于粗粒度的缓存可能导致部分数据更新时整个缓存失效,而过于细粒度则可能增加缓存管理成本。
  3. 多实例部署:在多实例部署环境下,内存缓存可能会出现不一致问题。此时需要考虑使用分布式缓存,如 Redis。
  4. 安全问题:如果缓存涉及敏感数据,要确保缓存的安全性,比如设置合适的访问权限,防止缓存数据泄露。