Skip to content
返回云服务

Cloudflare Cache API

用 Cache API 编程边缘缓存 — 比 Cache-Control 头更精细,读取免费。

Cloudflare进阶

为什么

Cache API 让你免费在边缘缓存任意数据(不仅 HTTP 响应)。读取亚毫秒且不计 KV 限额。适合缓存 API 响应、计算结果和渲染 HTML。

何时使用

用于 API 响应缓存、SSR HTML 缓存和计算查找。避免需全球一致(用 KV)或跨部署持久(Cache 按部署)的数据。

如何做

1. 获取缓存 — const cache = caches.default(当前 zone 边缘缓存) 2. 放 — cache.put(request, response)(response 须有 Cache-Control 或 TTL) 3. 匹配 — const cached = await cache.match(request)(未命中返回 null) 4. TTL — new Response(body, { headers: { "Cache-Control": "max-age=3600" } }) 5. 清除 — cache.delete(request) 或通过 API zone 级清除 6. 命名缓存 — caches.open("my-cache") 独立缓存命名空间 7. 缓存键 — 用唯一 URL 的 Request,按 query/header 变化

示例

export default { async fetch(request: Request, env: Env): Promise<Response> { const cache = caches.default; const cached = await cache.match(request); if (cached) return cached; // 命中,亚毫秒 // 未命中:从源/API 获取 const data = await fetch(`https://api.example.com/data${new URL(request.url).search}`); const response = new Response(data.body, { headers: { "Content-Type": "application/json", "Cache-Control": "max-age=300" }, }); ctx.waitUntil(cache.put(request, response.clone())); return response; }, };

常见问题

  • ⚠缓存按数据中心非全球 — 每边缘 POP 独立缓存,每 POP 首次未命中
  • ⚠返回后响应已消费 — 缓存前须 clone(),body 一次性
  • ⚠部署时缓存清除 — 勿依赖 Cache 持久,用 KV/R2

最佳实践

  • ✓cache.put 用 ctx.waitUntil — 不阻塞响应等缓存写
  • ✓按认证角色变化缓存键 — admin vs user 缓存不同响应
  • ✓设 max-age + swr — stale-while-revalidate 重验时保持缓存热

常见问题解答

什么是Cloudflare Cache API?它解决什么问题?

用 Cache API 编程边缘缓存 — 比 Cache-Control 头更精细,读取免费。 它可帮助开发者在不自建基础设施的前提下完成部署、存储与扩展,是云服务选型的核心参考。

如何在 5 分钟内上手Cloudflare Cache API?

两步即可跑通:① 获取缓存 — const cache = caches.default(当前 zone 边缘缓存);② 放 — cache.put(request, response)(response 须有 Cache-Control 或 TTL)。建议先用免费套餐验证流程,再接入生产环境。

Cloudflare Cache API 最容易踩的坑是什么?

最高频的问题是:缓存按数据中心非全球 — 每边缘 POP 独立缓存,每 POP 首次未命中。建议在上线前用 checklist 逐项核对,并在 CI 中加入策略与配置扫描。

Cloudflare Cache API 的最佳实践有哪些?

Cloudflare Cache API 的最佳实践包括:cache.put 用 ctx.waitUntil — 不阻塞响应等缓存写;按认证角色变化缓存键 — admin vs user 缓存不同响应;设 max-age + swr — stale-while-revalidate 重验时保持缓存热。其中首条「cache.put 用 ctx.waitUntil — 不阻塞响应等缓存写」应作为团队默认规范写入 IaC 模板。

Cloudflare Cache API 如何控制成本与避免账单意外?

三招防超支:① 为所有资源打 env/team 标签并启用账单告警;② 用预算阈值触发 Slack/邮件通知;③ 定期用 Cost Explorer 审查闲置资源并清理。Cloudflare Cache API 多数提供免费套餐,先在免费额度内验证再放量。