Upstash 是一个 serverless 数据平台。无需管理服务器的 Redis 和 Kafka。成立于 2020 年,投资方包括 a16z。如果你需要为 Vercel 或 Cloudflare Workers 上的 serverless 函数配备 Redis — Upstash 在这个细分领域几乎是垄断者。
官网:upstash.com
产品
Upstash Redis — 兼容 Redis API 的服务,按量付费模式运行。无需启动实例、配置复制、监控内存。按实际执行的命令付费。
Upstash Kafka — serverless Apache Kafka。生产者、消费者、主题 — 全都和经典 Kafka 一样,但没有 broker 和 ZooKeeper。除原生 Kafka 协议外还提供 REST API。
Upstash QStash — 保证送达的消息队列。非常适合 serverless 环境中的异步任务:请求到达,任务发送到 QStash,返回 200 OK 给客户端,后台处理。
定价 — 诚实的 Serverless 模式
Redis:每天免费 10,000 条命令。超出后 $0.2/10 万条命令。全球数据库(跨区域复制)— $0.6/10 万条命令。对比:AWS 最小的托管 Redis 实例(ElastiCache)从 $12/月起。
Kafka:每天免费 10,000 条消息。超出后 $1/百万条消息。不收取存储、分区或实例费用。
对于中小型负载,这比云巨头的托管方案便宜数倍。对于高吞吐量场景(数十亿次操作),经济性会发生变化 — 需要仔细计算。
全球复制
Upstash 的主要亮点 — 全球数据库。一个 Redis 数据库在多个区域之间自动复制。从最近的区域读取数据,写入主区域。全球 90% 用户的读取延迟低于 5ms。
对于 serverless 应用来说,这是杀手级功能。us-east 的 Vercel 函数从 Upstash 全球数据库读取数据 — 新加坡的用户获得相当于本地数据中心的延迟体验。
集成
提供 TypeScript、Python、Go 的 SDK。与 Vercel、Netlify、Cloudflare Workers、AWS Lambda 直接集成。REST API 允许在任何没有 TCP 连接的环境中操作 Redis(Cloudflare Workers、Deno Deploy)。
@upstash/redis TypeScript 库是生态系统中最好的之一。完全类型化,支持管道、事务、发布/订阅。文档为每个框架提供示例。
Serverless 方式的限制
Redis 最大值大小:10 MB。这对于缓存、会话、速率限制足够了,但不适合存储文件。
Serverless 环境中的连接池 — 是个问题。Upstash 通过 HTTP API 解决了这个问题,但 HTTP 请求的性能低于原生 Redis 协议。对于需要微秒级延迟的热路径 — 还是启动普通 Redis 吧。
供应商锁定程度中等:API 兼容 Redis,数据可以导出,但全球复制和 REST API 是专有的扩展层。可以迁移回普通 Redis,但会丢失这些特性。
总结
Upstash 是 serverless 世界的理想 Redis 方案。免费套餐覆盖黑客松和个人项目。按量付费比 90% 时间都闲置的按月实例租赁更公平。如果你的技术栈是 Vercel/Netlify/Cloudflare Workers,Upstash 几乎无可替代。对于 VPS 上的经典单体应用 — Docker 中的普通 Redis 仍然更简单、更快速。