Express 面试题
目录

如何使用缓存提高 Express 应用的性能?

· 约 3 分钟读完 · 第 85 / 120 章

推荐答案

在 Express 应用中,使用缓存可以显著提高性能,尤其是在处理频繁请求相同数据的场景下。以下是几种常见的缓存策略:

  1. 内存缓存:使用内存缓存(如 node-cache 或 memory-cache)来存储频繁访问的数据,减少数据库查询次数。
  2. HTTP 缓存:通过设置 HTTP 头(如 Cache-Control 和 ETag)来利用浏览器或 CDN 的缓存机制。
  3. Redis 缓存:使用 Redis 作为分布式缓存,适用于多实例部署的场景。
  4. 静态文件缓存:对静态资源(如 CSS、JS、图片)设置缓存策略,减少服务器负载。

示例代码

本题详细解读

1. 内存缓存

内存缓存是将数据存储在应用的内存中,适用于单实例部署的场景。优点是速度快,缺点是内存有限,且在多实例部署时无法共享缓存。

  • 适用场景:频繁访问的小数据量。
  • 常用库:node-cache、memory-cache。

2. HTTP 缓存

HTTP 缓存是通过设置 HTTP 头来控制浏览器或 CDN 的缓存行为。常见的头字段包括 Cache-Control、ETag 和 Last-Modified。

  • Cache-Control:控制缓存的最大时长(max-age)和缓存策略(public、private)。
  • ETag:用于验证资源是否发生变化,避免重复传输未修改的资源。

3. Redis 缓存

Redis 是一个高性能的键值存储系统,常用于分布式缓存。它支持持久化、高可用性和丰富的数据结构。

  • 适用场景:多实例部署、需要共享缓存的场景。
  • 常用库:ioredis、node-redis。

4. 静态文件缓存

对于静态资源(如 CSS、JS、图片),可以通过设置 HTTP 缓存头或使用中间件(如 express-static)来缓存这些资源,减少服务器负载。

  • 适用场景:静态资源文件。
  • 常用中间件:express-static、serve-static。

通过合理使用缓存策略,可以显著提高 Express 应用的性能,减少服务器负载和响应时间。