Cloudflare
历史版本
Release 0.2
Caching

缓存机制

@opennextjs/cloudflare 支持对应用中通过 fetch() (opens in a new tab) 发起的子请求进行缓存 (opens in a new tab)重新验证 (opens in a new tab)

默认情况下,Next.js 应用中所有的 fetch() 子请求都会被缓存。如需禁用单个子请求或整个路由的缓存,请参考 Next.js 文档 (opens in a new tab)

缓存会在部署之间持久化 (opens in a new tab)。您需要负责对缓存进行重新验证/清除操作。

💡

Workers KV 采用最终一致性模型,当使用默认 60 秒 TTL 时,更新可能需要最多 60 秒才能在全球范围内生效。

如何启用缓存

@opennextjs/cloudflare 使用 Workers KV (opens in a new tab) 作为 Next.js 应用的缓存存储。Workers KV 具有高性能 (opens in a new tab)特性,并利用 Cloudflare 的分层缓存 (opens in a new tab)来提高缓存命中率。当您将数据写入 Workers KV 缓存时,这些数据可以被任何 Cloudflare 节点读取。这意味着您的应用可以获取数据、将其缓存到 KV 中,随后全球任何位置的请求都可以从该缓存中读取。

启用缓存需要执行以下步骤:

1. 创建 KV 命名空间

npx wrangler@latest kv namespace create <YOUR_NAMESPACE_NAME>

2. 将 KV 命名空间添加到你的 Worker 中

默认情况下,你的应用 worker 中使用的绑定名称为 NEXT_CACHE_WORKERS_KV。这是可配置的,可以通过设置 __OPENNEXT_KV_BINDING_NAME 构建时环境变量来更改。

[[kv_namespaces]]
binding = "NEXT_CACHE_WORKERS_KV"
id = "<YOUR_NAMESPACE_ID>"