Cloudflare 速查

一个问题一篇:KV 的限额、D1 的迁移、R2 的预签名上传、Durable Objects 的 alarm……从 Cloudflare 教程里拆出的单点问答。(共 33 篇)

Cloudflare D1 的迁移怎么做?

D1 用版本化的 SQL 文件管理 schema。这篇讲迁移的三条命令、绑定名和数据库名的区别,以及本地与线上的差异。

D1 读副本和 Sessions API 怎么用?

开了读副本之后,用户可能读不到自己刚写的数据。这篇讲 withSession、bookmark 的用法,以及哪些结论只能引官方、本地看不到。

什么时候该离开 Cloudflare D1?

D1 的边界很明确:单库大小上限、每库单线程、没有交互式事务。这篇讲这些限制各自意味着什么,以及哪些场景 D1 依然合适。

Workers 怎么部署静态网站?

Workers 可以直接托管静态文件,不写 Worker 代码也行。这篇讲 assets 配置怎么写、纯静态与静态加动态两种形态,以及计费、限额和回滚上的要点。

Durable Objects 的内存状态什么时候会丢?

DO 实例的内存随时可能消失,休眠、被移出内存、部署和迁移都会让构造函数重新执行。这篇讲这些时间点,以及该把什么写进存储。

Durable Objects 的存储怎么用,限额是多少?

DO 每个对象有一份私有存储,SQLite 后端是新对象的推荐选择。这篇讲两套 API、官方列出的限额、Free 账户上限的矛盾,以及本地模拟和线上的差别。

Durable Objects 的 alarm 怎么用?

alarm 是每个 Durable Object 一个的、可持久的定时器。这篇讲 setAlarm 的写法、失败后怎么重试、必须幂等的原因,以及它和 Cron Triggers 的分工。

Durable Objects 怎么让 WebSocket 休眠?

朴素的 server.accept() 会让 Durable Object 一直驻留内存并持续计费。这篇讲 Hibernation API 的写法、休眠后哪些状态会丢,以及什么会阻止休眠。

怎么用 Durable Objects 做限流?

按用户、IP 或 token 限流时,每个 key 一个 Durable Object,计数在对象内串行。这篇给出滑动窗口的写法,以及它在延迟、计费和热点上的代价。

Cloudflare KV 的限额和计费是怎么算的?

key、value、metadata 的大小上限,每次调用最多多少次 KV 操作,免费和付费计划怎么计费,哪些限制本地能碰到、哪些碰不到。

怎么用 Cloudflare KV 做读穿缓存?

Worker 先读 KV,没有再回源并写回。热点 key 过期、空结果缓存、大值读取这三个坑怎么处理。

Workers 的 CPU 时间和墙钟时间有什么区别?

请求花 2 秒等上游,CPU 时间却只有几毫秒。这篇讲 Workers 里 CPU 时间与墙钟时间各算什么、2026-10 的限额数字,以及超限后会看到什么。

Worker 怎么感知客户端断开连接?

想在客户端取消请求时清理资源,要用 request.signal,但它需要显式开启兼容性标志,而且我在本地只复现了一种触发时机。这篇讲怎么开、什么时候会触发,以及对外调用怎么设超时。

Cloudflare Queues 的并发和限额怎么设?

Queues 的 push 消费者默认自动扩缩并发,max_concurrency 只该用来保护下游。这篇讲并发怎么决定、消息能留多久,以及消息和队列的各项上限。

Cloudflare Queues 消息处理失败后会怎样?

消息处理失败后,Queues 会按 max_retries 重试,用完后进入死信队列或被删除。这篇讲清重试次数、默认值和死信队列的行为。