跳过到主要内容
本页内容

边缘缓存

测试版功能

Deno Deploy 上的缓存 API 目前处于封闭测试阶段,尚未向所有用户开放。

Deno Deploy 上支持Web 缓存 API。缓存旨在提供微秒级的读取延迟、多 GB/s 的写入吞吐量和无限制的存储空间,但代价是尽力而为的一致性和持久性。

const cache = await caches.open("my-cache");

Deno.serve(async (req) => {
  const cached = await cache.match(req);
  if (cached) {
    return cached;
  }

  const res = new Response("cached at " + new Date().toISOString());
  await cache.put(req, res.clone());
  return res;
});

缓存数据存储在运行代码的同一 Deno Deploy 区域。通常,您的隔离区在同一区域内观察到读后写 (RAW) 和写后写 (WAW) 一致性;但是,在极少数情况下,最近的写入可能会丢失、乱序或暂时不可见。

过期 跳转到标题

默认情况下,缓存数据会无限期地持久化。虽然我们定期扫描并删除不活动的物体,但物体通常会在缓存中保留至少 30 天。

边缘缓存了解标准 HTTP 响应头 `Expires` 和 `Cache-Control`。您可以使用它们为每个缓存对象指定过期时间,例如

Expires: Thu, 22 Aug 2024 01:22:31 GMT

Cache-Control: max-age=86400

限制 跳转到标题

  • 如果响应不是从 `Uint8Array` 或 `string` 主体构建的,则需要手动设置 `Content-Length` 头部。
  • 删除尚未支持。