跳转到内容
搜索文档

Cache Reserve

最后更新 查看 MarkdownAgent 设置

Cache Reserve 是一个大型持久化数据存储,基于 R2 实现。只需在仪表板中点击一个按钮,您网站的可缓存内容就会写入 Cache Reserve。

与 Tiered Cache 在访客与源站之间构建缓存层级类似,Cache Reserve 作为终极上层缓存,会按您所需时长为资源预留存储空间。这确保内容在缓存中保留更久,保护源站免受不必要的出站流量费用。

内容从源站提供并缓存到 Cache Reserve 以及边缘缓存数据中心(T1=上层,T2=下层),然后返回客户端

Cache Reserve 中的内容根据 Edge Cache TTL 设置或源站的 Cache-Control 标头(如果未设置 Edge Cache TTL)被视为新鲜。新鲜期过期后,Cloudflare 在下次请求时与源站重新验证资源。这与 Cloudflare 常规 CDN 中的行为相同。

保留期控制资源在从 Cache Reserve 移除之前在其中的停留时间。Cache Reserve 从 30 天的保留期开始。如果资源在保留期内未被请求,将从 Cache Reserve 移除。请求资源会重置保留期。

资源必须满足某些条件才能使用 Cache Reserve。

Cache Reserve 是按使用量计费的产品,定价如下。虽然 Cache Reserve 需要付费计划,用户仍可以免费使用 Cloudflare 的 CDN(不含 Cache Reserve)。

启用 Cache Reserve

需要付费的 Cache Reserve 方案。

  1. 在 Cloudflare 仪表板中,转到 Cache Reserve(缓存储备) 页面。

    Go to Cache Reserve ↗
  2. 选择 Enable storage sync(启用存储同步)

有关更多信息,请参阅 Change Cache Reserve setting API

如果您是 Enterprise 客户并对 Cache Reserve 感兴趣,请联系账户团队获取配置帮助。

Cache Reserve 资源资格

并非所有资源都符合 Cache Reserve 的准入条件。要进入 Cache Reserve,资源必须:

清除行为

要从 Cache Reserve 中删除所有数据,请参阅 Cache Reserve 清除按钮

请注意,Purge Everything(全部清除)对 Cache Reserve 执行软清除,不会更新 Cache Response Rules 设置的元数据(例如缓存标签)。要刷新该元数据,请清除单个资源或等待其完全过期。

限制

  • Cache Reserve 文件限制与 R2 限制相同。请注意,CDN 缓存限制仍然适用。大于标准限制的资源不会存储在标准 CDN 缓存中,因此这些资源会更频繁地产生 Cache Reserve 操作费用。
  • Cache Reserve 目前不支持来自源站的 Range 请求。
  • Vary for images 目前与 Cache Reserve 不兼容。
  • 链接到 zone 域名的 R2 公共存储桶的请求不会使用 Cache Reserve。为关联 zone 启用 Cache Reserve 后,仅对非 R2 存储桶目标的请求使用 Cache Reserve。
  • Cache Reserve 会直接从源站请求未压缩内容。与标准 Cloudflare CDN 不同,Cache Reserve 向源站发送请求时不包含 Accept-Encoding: gzip 标头。
  • 使用 Cloudflare O2O 设置时会绕过 Cache Reserve。

用量

与标准 CDN 一样,Cache Reserve 也使用 cf-cache-status 标头来表示 缓存响应状态,如 MISSHITREVALIDATED。Cache Reserve 的缓存未命中和命中会计入仪表板的缓存命中率。

通过 CacheReserveUsed Logpush 字段可以查看填充 Cache Reserve 或由 Cache Reserve 提供的个别抽样请求。

Cache Reserve 的每月操作和存储使用情况可在仪表板中查看。

定价

Cache Reserve 根据存储的数据总量以及对该数据的两类操作计费:

大多数情况下,Cache Reserve 未命中会产生一次 A 类操作和一次 B 类操作,Cache Reserve 命中会产生一次 B 类操作。大于 1 GB 的资源会按比例产生更多操作。

Cache Reserve 定价

费率
存储$0.015 / GB-月
A 类操作(写入)$4.50 / 百万请求
B 类操作(读取)$0.36 / 百万请求

存储用量

存储使用以 GB-月(gigabyte-month)为计费指标。GB-月通过记录当月存储的总字节数来计算。

例如:

  • 存储 1 GB 持续 30 天,计费为 1 GB-月。
  • 存储 2 GB 持续 15 天,计费为 1 GB-月。

操作

操作由 Cache Reserve 代表用户执行,将数据从源站写入 Cache Reserve,并将该数据向下游传递到 Cloudflare 网络的其他部分。这些操作由 Cloudflare 在内部管理。

Class A 操作(写入)

Class A 操作基于 Cloudflare CDN 的缓存未命中执行。当请求无法从缓存提供时,将从源站获取并写入 Cache Reserve,同时在返回访客途中写入边缘缓存。

Class B 操作(读取)

Class B 操作在需要从 Cache Reserve 获取数据以响应边缘缓存未命中时执行。

清除(Purge)

资源清除为免费操作。

当您发送按 URL 清除请求时,Cache Reserve 会与边缘缓存一起即时清除。详情请参阅缓存配置

其他清除方法(如按标签、主机、前缀清除或全部清除)会强制在后续对 Cache Reserve 资源的请求上尝试重新验证。请注意,以这种方式清除的资源在保留 TTL 到期之前仍会产生存储费用。

Cache Reserve 计费示例

示例 1

假设月初将 1,000 个资源(每个 1 GB)写入 Cache Reserve,且每个资源被读取 1,000 次,当月的预估费用为:

用量 可计费数量 价格
B 类操作 (1,000 个资源) * (每个资源 1,000 次读取) 1,000,000 $0.36
A 类操作 (1,000 个资源) * (每个资源 1 次写入) 1,000 $4.50
存储 (1,000 个资源) * (每个资源 1GB) 1,000 GB-月 $15.00
总计 $19.86

示例 2

假设 Cache Reserve 中有 1,000,000 个资源(每个 1 MB),且:

  • 每个资源每天过期并重新写入 Cache Reserve 1 次
  • 每个资源每天被读取 2 次

当月的预估费用为:

用量 可计费数量 价格
B 类操作 (1,000,000 个资源) * (每天 2 次读取) * (30 天) 60,000,000 $21.60
A 类操作 (1,000,000 个资源) * (每天 1 次写入) * (30 天) 30,000,000 $135.00
存储 (1,000,000 个资源) * (每个资源 1MB) 1,000 GB-月 $15.00
总计 $171.60

提示与最佳实践

Cache Reserve 设计为与启用的分层缓存(Tiered Cache)配合使用,以实现最大源站屏蔽效果。不使用 Tiered Cache 而使用 Cache Reserve 可能会导致更高的存储操作成本。如果您尝试在不启用 Tiered Cache 的情况下启用 Cache Reserve,Cloudflare 仪表板将会发出警告。

Cache Reserve 分析

Cache Reserve Analytics 提供有关 Cache Reserve 使用情况的洞察。您可以查看哪些内容存储在 Cache Reserve 中、访问频率、存储时长,以及它为您节省了多少源站出站流量。

Overview 部分的 Cache Reserve 下,您可以访问以下指标:

  • Egress savings (bandwidth)(出站节省(带宽)) - 基于从 Cache Reserve 提供且无需从源站服务器提供的响应字节数的估算。这些表示为缓存命中。
  • Requests served by Cache Reserve(Cache Reserve 提供的请求数) - 由 Cache Reserve 提供的请求总数。
  • Data storage summary(数据存储摘要) - 基于代表性请求样本。有关 Cloudflare 如何采样数据的更多详情,请参阅采样
    • Current data stored(当前存储数据) - 随时间变化的当前存储数据。
    • Aggregate storage usage(聚合存储用量) - 所选时间戳的总存储用量。
  • Operations(操作) - 随时间变化的 Class A(写入)和 Class B(读取)操作。

Cache Reserve 清除按钮

您可以通过仪表板或 API 清除 Cache Reserve 中存储的所有数据。要清除 Cache Reserve:

  • 该域必须已启用 Cache Reserve。
  • Cache Reserve 需要处于关闭状态。

请注意,删除操作可能需要长达 24 小时才能完成。

  1. 在 Cloudflare 仪表板中,转到 Cache Reserve(缓存储备) 页面。

    Go to Cache Reserve ↗
  2. 在 **Delete Cache Reserve Data(删除 Cache Reserve 数据)**中,选择 Delete Storage(删除存储)

要通过 API 删除 Cache Reserve 数据,请使用以下示例请求。有关更多信息,请参阅 API 文档

请求 1:获取 Cache Reserve 状态

Required API token permissions

At least one of the following token permissions is required:
  • Zone Settings Write
  • Zone Settings Read
  • Zone Read
  • Zone Write
Get Cache Reserve settingbash
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/cache/cache_reserve" \
	--request GET \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"
Responsejson
{
	"result": {
		"editable": true,
		"id": "cache_reserve",
		"value": "off"
	},
	"success": true,
	"errors": [],
	"messages": []
}

如果 Cache Reserve 已关闭,您可以继续执行 Cache Reserve 清除操作。

请求 2:启动 Cache Reserve 清除

Required API token permissions

At least one of the following token permissions is required:
  • Zone Settings Write
  • Zone Write
Start Cache Reserve Clearbash
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/cache/cache_reserve_clear" \
	--request POST \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"
Responsejson
{
	"result": {
		"id": "cache_reserve_clear",
		"start_ts": "2024-06-02T10:00:00.12345Z",
		"state": "In-progress"
	},
	"success": true,
	"errors": [],
	"messages": []
}

这篇文档对您有帮助吗?