· upstash / redis / cloudflare-workers

Upstash vs Redis Cloud — Redis serverless cho ứng dụng edge

Upstash là managed Redis duy nhất cho Cloudflare Workers, Vercel Edge và Next.js Edge. Redis Cloud yêu cầu TCP — thứ mà môi trường V8 isolate chặn hoàn toàn.

Bởi

2.117 từ · 11 phút đọc

Nếu bạn đang xây dựng trên edge runtime, Upstash là lựa chọn duy nhất. Cloudflare Workers, Vercel Edge Functions và Next.js Edge API Routes chạy trong môi trường V8 isolate — môi trường này chặn hoàn toàn kết nối TCP. Upstash expose Redis qua HTTP/REST, giao thức duy nhất mà các runtime này chấp nhận. Redis Cloud yêu cầu TCP. Câu hỏi kỹ thuật đã có lời giải trước khi bạn kịp mở tab so sánh giá.

Câu chuyện về giá cũng nghiêng về Upstash ở mức sử dụng thấp đến trung bình. Gói pay-as-you-go của Upstash chạy khoảng $2/tháng ở 1 triệu lệnh. Redis Cloud Pro bắt đầu từ $200/tháng. Hai bên đạt mức ngang bằng chi phí ở khoảng 100 triệu lệnh/tháng.

Dành cho ai

Các lập trình viên đang xây dựng API, rate-limiter, cache hoặc session store trên Cloudflare Workers, Vercel Edge Functions hoặc Next.js Edge API Routes. Nếu bạn đang chạy server Node.js truyền thống với kết nối TCP ổn định, cả hai sản phẩm đều hoạt động và phần so sánh trở thành câu hỏi thuần về giá và tính năng. Xem Thư viện rate-limit tốt nhất cho Node.js + Redis để so sánh sâu hơn về các Redis client trên server truyền thống.

Ma trận tính năng

Tính năngUpstash RedisRedis Cloud ProRedis Cloud Essentials
Tương thích edge runtime✅ HTTP/REST❌ TCP only❌ TCP only
Cloudflare Workers✅ Native (@upstash/redis)
Vercel Edge Functions✅ Đã xác nhận
Next.js Edge API Routes✅ Đã xác nhận
Mô hình tính giáTheo lệnhTheo dung lượng (giờ/RAM)Theo dung lượng (giờ/RAM)
Global replication✅ Đến 12 region (read replica)✅ Active-Active multi-primary✅ Active-Passive only
RedisJSON✅ (Redis Stack)✅ (Redis Stack)
RediSearch✅ (Redis Stack)✅ (Redis Stack)
RedisTimeSeries❓ Chưa xác nhận
RedisBloom❓ Chưa xác nhận
Lưu trữ dữ liệu✅ Tự động backup
Free tier✅ 256 MB / 500K lệnh/tháng✅ 30 MB✅ 30 MB
SLA uptime99.99% (Prod Pack add-on)99.999%99.99%
Kết nối private
SOC-2✅ (Prod Pack add-on)
Redis client chuẩn❌ Chỉ HTTP SDK✅ ioredis, node-redis, tất cả

Giá

Upstash

GóiChi phí
Free$0/tháng — 256 MB, 500K lệnh/tháng, 10 GB băng thông
Pay-as-you-go$0.20 mỗi 100K lệnh; lưu trữ $0.25/GB (1 GB đầu miễn phí)
Gói cố định$10–$1,500/tháng (250 MB–500 GB)
Prod Pack+$200/tháng/database — HA, 99.99% SLA, mã hóa at rest, SOC-2

Global replication nhân chi phí write theo từng region. Một primary + một read region → $0.40 mỗi 100K lệnh write.

Redis Cloud

GóiChi phí
Free$0 — 30 MB, shared cloud, SLA best-effort
Essentials~$5/tháng tối thiểu (250 MB, shared, 99.99% SLA)
Pro$200/tháng tối thiểu ($200 đầu được credit miễn phí), dedicated cluster, 99.999% SLA

Chi phí khi mở rộng

Lệnh/thángUpstash (pay-as-you-go)Redis Cloud ProRedis Cloud Essentials
1M~$2$200 (tối thiểu)~$5
10M~$20$200 (tối thiểu)~$50+
100M~$200~$200+giới hạn dung lượng
500M~$1,000cạnh tranh

Upstash trở nên đắt ở quy mô lớn khi bật global replication. Ở 100 triệu lệnh write trên hai region, Upstash tốn khoảng $400 so với Redis Cloud Pro khoảng $200. Điểm giao nhau này quan trọng nếu bạn thực sự write ở khối lượng đó.

Khả năng tương thích edge trong thực tế

Cloudflare Workers và Vercel Edge Functions chạy trong V8 isolate: không có TCP, không có kết nối ổn định, không có Redis wire protocol thuần. Cách duy nhất để giao tiếp với Redis từ các runtime này là qua HTTPS.

Upstash được xây dựng cho mục đích này. Package @upstash/redis là HTTP client giao tiếp với Redis API qua REST:

import { Redis } from "@upstash/redis/cloudflare";

export default {
  async fetch(request: Request, env: Env): Promise<Response> {
    const redis = Redis.fromEnv(env); // đọc UPSTASH_REDIS_REST_URL + UPSTASH_REDIS_REST_TOKEN
    const count = await redis.incr("pageviews");
    return new Response(`Views: ${count}`);
  },
};

Secrets được cấu hình qua Wrangler:

wrangler secret put UPSTASH_REDIS_REST_URL
wrangler secret put UPSTASH_REDIS_REST_TOKEN

Redis Cloud không có con đường tương đương. TCP socket mà ioredisnode-redis cần không tồn tại trong Cloudflare Worker. Giải pháp reverse-proxy sẽ thêm một vòng đi qua server khác — phủ nhận phần lớn lý do chọn edge compute về độ trễ và chi phí.

Nếu mục tiêu chính của bạn là rate limiting trên Workers và muốn tránh phụ thuộc Redis, Cloudflare Workers rate-limit không cần Redis bao phủ phần lớn use case mà không cần dependency ngoài.

Độ trễ

Upstash công bố một benchmark edge caching trực tiếp (do vendor tạo ra, source có trên GitHub):

  • Khi bật Upstash edge caching: ~5 ms trung bình toàn cầu từ 10 khu vực địa lý
  • Không dùng edge caching (single region qua HTTPS): >100 ms với client ở xa

Benchmark đo độ trễ request đầy đủ bao gồm TLS handshake, HTTP framing và JSON serialization — không phải raw Redis wire latency. Chi phí đó là có thật, nhưng đây là lựa chọn duy nhất trong edge runtime. Không có số liệu p50/p99 được xác minh độc lập; benchmark này là công cụ của Upstash.

Với Redis Cloud trên triển khai phía server truyền thống, wire latency dưới mili giây với kết nối TCP ổn định là tiêu chuẩn. Con số đó không còn ý nghĩa nếu runtime của bạn chặn TCP.

Trải nghiệm lập trình viên

Upstash

SDK của Upstash được thiết kế cho môi trường serverless. Mỗi lời gọi là HTTPS stateless — không cần quản lý connection pool, không có nguy cơ connection leak trong các function tồn tại ngắn.

// Node.js / tương thích edge
import { Redis } from "@upstash/redis";

const redis = new Redis({
  url: process.env.UPSTASH_REDIS_REST_URL!,
  token: process.env.UPSTASH_REDIS_REST_TOKEN!,
});

// Gom nhiều lệnh trong một HTTP round-trip với pipeline
const pipeline = redis.pipeline();
pipeline.set("user:123:session", sessionToken, { ex: 3600 });
pipeline.incr("user:123:requests");
const results = await pipeline.exec();

Dashboard tại upstash.com bao gồm tạo database, chọn region, xem số liệu sử dụng và duyệt dữ liệu CLI trong một giao diện. Từ zero đến lệnh đầu tiên mất chưa đến năm phút.

Redis Cloud

Redis Cloud dùng Redis wire protocol chuẩn với bất kỳ client nào tương thích. Nếu bạn đã có kiến thức Redis và infrastructure phía server, mọi thứ không thay đổi:

import { createClient } from "redis";

const client = createClient({
  url: "rediss://:<password>@<host>:<port>",
});

await client.connect();
await client.set("key", "value", { EX: 3600 });
const val = await client.get("key");
await client.disconnect();

Dashboard tại app.redislabs.com toàn diện và hướng đến doanh nghiệp. Connection string, TLS certificate, kiểm soát truy cập và cấu hình Active-Active replication đều quản lý được từ console. Đánh đổi là độ phức tạp — có nhiều thứ hơn mức cần thiết cho một serverless cache đơn giản.

Nhân bản toàn cầu

Cả hai sản phẩm đều hỗ trợ triển khai đa region, nhưng với ngữ nghĩa khác nhau.

Upstash hỗ trợ đến 12 read replica trên các region. Write đến một primary region; read được phục vụ từ replica gần nhất. Eventual consistency. Chi phí tăng tuyến tính theo số region có write.

Redis Cloud Pro cung cấp Active-Active (nhân bản multi-primary dựa trên CRDT) — mọi region đều nhận write. Đây là lựa chọn phù hợp cho workload write nặng phân tán toàn cầu mà không thể chịu được độ trễ round-trip đến primary. Redis Cloud Essentials chỉ hỗ trợ Active-Passive (chỉ đọc từ replica, giống Upstash).

Nếu bạn cache ở edge với read replica của Upstash, ~5 ms đọc toàn cầu là kết quả được quảng cáo. Nếu bạn cần mọi region đều nhận write độc lập — không chỉ đọc — Active-Active của Redis Cloud Pro là managed Redis duy nhất đáp ứng điều đó với 99.999% SLA.

Hỗ trợ module

Redis Cloud đóng gói Redis Stack trên cả hai tier Pro và Essentials: RedisJSON, RediSearch, RedisTimeSeries và RedisBloom đều có sẵn. Không cần add-on.

Upstash xác nhận hỗ trợ RedisJSON và RediSearch. Hỗ trợ RedisTimeSeries và RedisBloom chưa được xác nhận trong tài liệu của Upstash tính đến thời điểm viết bài — hãy kiểm tra tại upstash.com/docs trước khi phụ thuộc vào những module này. Để hiểu thêm về hệ sinh thái Redis gồm cả nhánh fork Valkey, xem Redis vs Valkey 2026.

Mức độ phổ biến

Upstash có tích hợp first-party trên cả hai nền tảng edge lớn:

Vercel KV là lớp wrapper trên Upstash Redis. Một cuộc thảo luận trên Hacker News khi Vercel KV ra mắt ghi nhận rằng Vercel KV chạy ở mức giá gấp khoảng 2× so với đăng ký Upstash trực tiếp — dấu hiệu cho thấy Upstash là nền tảng bên dưới, không phải Vercel, và đăng ký trực tiếp vẫn khả dụng.

Kết luận

Chọn Upstash nếu:

  • Bạn đang xây dựng trên Cloudflare Workers, Vercel Edge Functions hoặc Next.js Edge API Routes — Upstash là lựa chọn duy nhất hoạt động được.
  • Traffic không đều, thấp hoặc khó dự đoán — pay-as-you-go ở $0.20/100K lệnh, scale về zero khi không dùng.
  • Bạn cần free tier có dung lượng đáng kể (256 MB / 500K lệnh so với 30 MB của Redis Cloud).
  • Serverless, vận hành tối giản quan trọng hơn SLA và kết nối private.

Chọn Redis Cloud Pro nếu:

  • Bạn đang chạy server hoặc container truyền thống với kết nối TCP ổn định.
  • Bạn cần Active-Active multi-primary global replication với 99.999% SLA.
  • Kết nối private (VPC peering) hoặc SOC-2 mà không phải trả thêm phí per-database.
  • Workload khối lượng cao ổn định (~100M+ lệnh/tháng) khiến capacity pricing cạnh tranh hơn.

Chọn Redis Cloud Essentials nếu:

  • Bạn đang dùng server stack truyền thống với khối lượng thấp và muốn điểm vào rẻ (~$5/tháng so với $2 của Upstash ở 1M lệnh — xấp xỉ nhau ở mức đó, nhưng không tương thích edge).

Lưu ý

Cả Upstash lẫn Redis Cloud đều không có chương trình affiliate đang hoạt động và được xác nhận tính đến tháng 6/2026. Upstash không có chương trình referral công khai. Chương trình đối tác của Redis Cloud được thông báo ra mắt vào tháng 2/2026 nhưng chưa triển khai với URL tracking hoặc tỷ lệ hoa hồng công khai. Hãy xác minh trực tiếp với cả hai vendor trước khi xuất bản. Bài viết này không chứa affiliate link và kết luận không bị ảnh hưởng bởi bất kỳ quan hệ thương mại nào.

Số liệu benchmark (5 ms edge, >100 ms không có edge caching) đến từ công cụ benchmark của chính Upstash. Không có số liệu p50/p99 được xác minh bởi bên thứ ba.

Hỗ trợ RedisTimeSeries và RedisBloom trên Upstash chưa được xác nhận tại thời điểm viết bài. Nếu bạn cần những module đó, hãy kiểm tra trước khi chọn Upstash.

Tham khảo