推荐答案
在 Express 中实现缓存可以通过多种方式,以下是几种常见的缓存策略:
- 内存缓存:使用内存缓存库如
memory-cache
或node-cache
来存储数据,减少对数据库或外部 API 的频繁请求。 - HTTP 缓存:通过设置 HTTP 头(如
Cache-Control
和ETag
)来利用浏览器或代理服务器的缓存机制。 - Redis 缓存:使用 Redis 作为分布式缓存,适用于需要跨多个实例共享缓存的场景。
- 文件系统缓存:将缓存数据存储在文件系统中,适用于需要持久化缓存数据的场景。
本题详细解读
1. 内存缓存
内存缓存是最简单的缓存方式,适用于单实例应用。可以使用 memory-cache
或 node-cache
库来实现。
-- -------------------- ---- ------- ----- ----- - ------------------------ ---------------- ----- ---- -- - ----- ---------- - ------------------ -- ------------ - ------ --------------------- - -- ---------- ----- ---- - ------------------------ ----------------- ----- ------- -- ----- --------------- ---
2. HTTP 缓存
通过设置 HTTP 头,可以利用浏览器或代理服务器的缓存机制。
app.get('/static-data', (req, res) => { res.set('Cache-Control', 'public, max-age=3600'); // 缓存1小时 res.send(fetchStaticData()); });
3. Redis 缓存
Redis 是一个高性能的键值存储系统,适用于分布式缓存。
-- -------------------- ---- ------- ----- ----- - ----------------- ----- ------ - --------------------- ---------------------- ----- ---- -- - ------------------ ----- ----- -- - -- ------ - ------ --------------------------- - -- ---------- ----- ------- - ------------------------ -------------------- ----- ------------------------- -- ----- ------------------ --- ---
4. 文件系统缓存
将缓存数据存储在文件系统中,适用于需要持久化缓存数据的场景。
-- -------------------- ---- ------- ----- -- - -------------- ----- ---- - ---------------- --------------------- ----- ---- -- - ----- -------- - -------------------- -------- ------------- -- ------------------------- - ----- ---- - ------------------------- -------- ------ --------------------------- - -- ---------- ----- ------- - ------------------------ -------------------------- ------------------------- ------------------ ---