跳转到内容
搜索文档

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 标头来表示 缓存响应状态,如 MISS、HIT 和 REVALIDATED。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": []
}

这篇文档对您有帮助吗?