Deno 新增 Cache API 支持概览 - 技术点滴

作者:API传播员 · 2025-12-10 · 阅读时间:4分钟

仍有一些未实现的功能,但目前来看,Deno 新增的 Cache API 支持展现出了极大的潜力。本文将带您了解这一功能对开发者的意义,以及如何在实际项目中使用它。


使用前的准备工作

在开始之前,请确保您已经安装了 Deno 1.26 版本。如果尚未升级,可以通过以下命令更新您的本地安装:

deno upgrade

完成升级后,我们便可以继续探索 Deno 的 Cache API 功能。


Cache API 的核心功能

Deno 的 Cache API 提供了基础的缓存操作功能,包括添加、删除和查询缓存。这些功能虽然看似简单,但它们为开发者提供了构建更复杂缓存逻辑的基本模块。

值得注意的是,Deno 的 Cache API 不仅可以在客户端使用,还支持在后端实现。这意味着您可以在服务器端缓存请求的响应,从而跳过复杂的业务逻辑或避免重复调用外部 API,显著提升性能。

通过 Cache API,您可以缓存任何特定请求的响应,从而减少不必要的计算和网络请求。


当前的实现状态

虽然 Cache API 的功能听起来很强大,但目前的实现尚未完全完成。以下是 Deno 已经支持的方法:

  • 部分方法已实现:例如 Cache.match()Cache.put()
  • 部分方法尚未支持:例如 Cache.add()Cache.keys()

这些未实现的方法虽然不是绝对必要,但它们的缺失可能会对某些使用场景造成限制。


实际使用示例

以下是一个简单的示例代码,展示如何通过 Cache API 优化服务器性能:

  1. 初始化缓存:
    使用 CacheStorage 创建一个缓存实例。

  2. 检查缓存:
    对于每个请求,检查是否已有缓存响应。

  3. 返回缓存:
    如果缓存中存在响应,则直接返回。

  4. 更新缓存:
    如果缓存中不存在响应,则执行完整逻辑,并将结果存入缓存。

运行示例代码的命令如下:

deno run --allow-net index.ts

在我的测试中,未使用缓存的情况下,浏览器平均需要 100 毫秒处理请求。通过引入 Cache API,可以显著减少响应时间。


注意事项

在使用 Cache API 时,需要注意以下几点:

  1. 响应对象的克隆
    在将 response 对象存入缓存时,必须先克隆它。因为响应对象只能被消费一次,直接存储原始响应会导致错误。

  2. 全局可用的 CacheStorage
    Deno 提供了全局变量 caches,开发者可以直接使用它来管理缓存。

  3. 缓存管理逻辑
    当前 API 并未提供过期缓存的管理功能。开发者需要自行设计逻辑,判断缓存数据是否过时,并决定如何处理。


当前的局限性

虽然 Deno 的 Cache API 已经初具雏形,但仍存在一些不足:

  • 缺少关键方法
    例如 Cache.keys() 方法尚未实现,这使得开发者无法轻松查看缓存内容。

  • 缺乏生产级支持
    由于功能尚未完善,API 目前还不适合在生产环境中使用,特别是在需要处理大量缓存数据的场景。

不过,随着 Deno 的不断更新,完全兼容的 Cache API 版本指日可待。


总结

Deno 的 Cache 请求处理逻辑。尽管目前的实现尚不完善,但它已经展现出了巨大的潜力。未来,随着功能的逐步完善,这一 API 有望成为开发者的重要工具。

您是否已经尝试过 Deno 的 Cache API?欢迎分享您的使用体验和建议!

原文链接: https://blog.bitsrc.io/an-overview-of-denos-new-cache-api-support-36efa42a1f7c