Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Redis

Cloudflare Workers KV so với Upstash Redis: Kho dữ liệu nào phù hợp cho Workers của bạn?

Nếu bạn đang sử dụng Cloudflare Workers, Upstash Global Redis và Workers KV có lẽ là hai lựa chọn tốt nhất để lưu trữ dữ liệu. Trong bài này, tôi sẽ so sánh ngắn gọn chúng như một kho dữ liệu cho Cloudflare Workers functions.

Tính năng

Workers KV có API key-value store với hết hạn:

put(key, value, {expiration: secondsSinceEpoch})
get(key)
delete(key)
list({prefix?: string, limit?: number, cursor?: string})

Upstash Redis có API lớn hơn nhiều, bao gồm Strings, Sets, Lists, Hashes, SortedSets. Xem API Upstash.

Giá cả

Upstash Global Redis:

  • $0.4 cho 100K lần đọc
  • $2 cho 100K lần ghi
  • Lưu trữ: $0.25/ GB-tháng

Cloudflare Workers KV:

  • $0.5 cho 1 triệu lần đọc
  • $5 cho 1 triệu lần ghi
  • Lưu trữ: $0.50/ GB-tháng

Khả năng di chuyển

Upstash tương thích với Redis. Bạn có thể dễ dàng di chuyển dữ liệu đến bất cứ nơi nào chạy Redis được, kể cả laptop của riêng bạn.

Workers KV chỉ được hỗ trợ trong Cloudflare Workers.

Độ trễ đọc

Upstash Global phân phối dữ liệu đến 5 vùng (North Virginia, Oregon, Frankfurt, Singapore, São Paulo). Tùy vị trí client, độ trễ đọc dao động 10-80 ms. Vị trí client và độ trễ:

  • Mỹ: 10-20 ms
  • Đức: 10-20 ms
  • Brazil: 10-20 ms
  • Anh: 20-30 ms
  • Tây Ban Nha: 30-40 ms
  • Ấn Độ: 50-60 ms
  • Nam Phi: 100-200 ms

Workers KV lưu giá trị đọc ít ở trung tâm, giá trị phổ biến lưu ở tất cả trung tâm dữ liệu Cloudflare. Lần đọc đầu có độ trễ cao (200+ ms). Các lần sau 10-30 ms. Nhờ số lượng PoP lớn, Workers KV có độ trễ đọc tương tự khắp thế giới.

Khi client gần 5 vùng của Upstash, độ trễ đọc tương đương Workers KV. Đây là kết quả bất ngờ. Tôi mong đợi CF Workers KV tốt hơn vì Cloudflare chạy Workers và KV cùng trung tâm. Tôi dự định benchmark kỹ hơn và đăng bài khác.

Cloudflare Workers có độ trễ đọc tốt hơn Upstash khi client xa các vùng Upstash như Nam Phi.

Tính nhất quán

Cả Workers KV và Upstash Global Redis đều eventually consistent (nhất quán cuối cùng). Client cuối cùng sẽ đọc giá trị mới nhất. Nhưng không đảm bảo tất cả client đọc cùng giá trị hoặc mới nhất tại một thời điểm cụ thể.

Nếu cần cơ sở dữ liệu toàn cầu nhất quán mạnh, xem Google Cloud Spanner, CockroachDB hoặc Fauna.

Độ trễ ghi

Upstash sao chép cập nhật đến các vùng toàn cầu ngay lập tức. Mất 300-500 ms để cập nhật lan truyền đến tất cả vùng. Với Cloudflare, có thể mất tới 60 giây để cập nhật lan truyền đến các trung tâm dữ liệu khác.

Thông lượng ghi

Cloudflare Workers KV có giới hạn cứng: 1 lần ghi vào cùng key mỗi giây. Upstash Redis không có giới hạn này. Bạn có thể thực hiện hàng nghìn lệnh ghi/giây tùy theo dung lượng gói (Pay-as-you-go, Enterprise...)

Giới hạn 1 ghi/giây hạn chế Workers KV chỉ dùng cho read-only hoặc read-heavy.

Liên kết