Workers KV
Nó là gì
Hãy nghĩ đến một cuốn từ điển khổng lồ: bạn tra một từ (khóa — key) và lập tức nhận được định nghĩa của nó (giá trị — value). Workers KV là một kho lưu trữ khóa-giá trị (KV — key-value) toàn cầu được xây dựng theo cách đó và thiết kế cho việc đọc dữ liệu. Bạn ghi một giá trị một lần, và Cloudflare sao chép nó khắp mạng lưới của mình để bất kỳ Worker nào, ở bất kỳ đâu, cũng có thể đọc nó với độ trễ rất thấp (gần như không phải chờ đợi). Nó có tính nhất quán cuối cùng (eventually consistent): sau một lần ghi, giá trị mới sẽ hiển thị ở khắp mọi nơi trong một khoảng thời gian ngắn. Độ trễ ngắn đó là cái giá phải trả để đổi lấy tốc độ và phạm vi toàn cầu.
Điểm mạnh
- Đọc cực nhanh, độ trễ thấp từ bất kỳ đâu ở (rìa mạng).
- Tự động nhân bản trên toàn cầu — không cần quản lý vùng (region) nào.
- (Application Programming Interface — Giao diện Lập trình Ứng dụng — tập hợp nhỏ các lệnh bạn gọi) đơn giản:
get,put,delete,list, với TTL (Time To Live — Thời gian Sống — thời gian một giá trị được giữ trước khi tự động hết hạn) tùy chọn. - Rẻ khi mở rộng quy mô cho các tác vụ chủ yếu là đọc; có gói miễn phí có thể dùng được.
- Gắn (bind) thẳng vào Workers và Pages Functions.
Đánh đổi
- Nhất quán cuối cùng — không phù hợp cho dữ liệu cần đúng ngay lập tức sau khi ghi.
- Việc ghi chậm hơn và bị giới hạn tốc độ (rate-limited) so với việc đọc.
- Kích thước giá trị bị giới hạn (khoảng 25 MB); nó không phải là kho lưu trữ số lượng lớn như R2.
- Không có truy vấn hay quan hệ — nó chỉ đơn thuần là khóa ứng với giá trị.
Khi nào nên dùng
Dùng KV cho cấu hình, cờ tính năng (feature flags), phản hồi API được lưu đệm (cached), bảng định tuyến, tra cứu phiên (), và bất kỳ dữ liệu chủ yếu-để-đọc nào mà bạn có thể chấp nhận việc nó cũ đi vài giây.
Phù hợp với vibe coding ra sao
KV là một lựa chọn dễ ăn cho một (tác nhân AI) khi thêm bộ nhớ đệm hoặc cấu hình vào một Worker: một binding, rồi get/put. Hãy nói rõ rằng nó có tính nhất quán cuối cùng, để agent không dùng KV ở những nơi cần đảm bảo đọc-ngay-sau-ghi — hãy chỉ nó tới D1 hoặc một Durable Object cho trường hợp đó. Đoạn mã dưới đây gắn (bind) một namespace và khởi tạo một giá trị.
# wrangler.toml
[[kv_namespaces]]
binding = "CONFIG"
id = "your-kv-namespace-id"
npx wrangler kv namespace create CONFIG
npx wrangler kv key put --binding=CONFIG "theme" "dark"