04 · 实验 E
unstable_cache 缓存非 fetch 数据
不是所有数据都来自 fetch(如直接查数据库)。用 unstable_cache 手动包一层,也能享受数据缓存。
裸函数结果(每次执行都变)
2026-09-21T02:50:20.879Z
缓存函数结果(30 秒内复用)
2026-09-21T02:50:20.978Z
怎么观察(必须生产模式)
pnpm build后pnpm start:刷新页面, 右侧"缓存函数结果"在 30 秒内不变 —— 命中了数据缓存;左侧"裸函数结果"每次执行都不同。- 30 秒后的首次请求触发后台重建,缓存值才更新。
- 代码里打了
tags(或这里用revalidate),可用revalidateTag主动清掉(见实验 D)。
关键认知
unstable_cache 是 fetch 缓存能力的"通用版":任何异步函数都能包进去, 配合 revalidate(时间)和 tags(标签)使用。 Next 15+ 官方也推荐用它在服务端组件里缓存非 fetch 数据。