Workers KV
概要
巨大な辞書を思い浮かべてください。単語(キー)を引くと、その定義(値)がすぐに得られます。Workers KV は、そのように作られた、読み取り向けに設計されたグローバルな KV(キーバリュー)ストアです。値を一度書き込むと、Cloudflare がそれをネットワーク全体にレプリケートするため、どこにある Worker でも非常に低いレイテンシ(ほとんど待たされない)で読み取れます。これは結果整合性を持ちます。書き込みは短い時間枠のうちに至るところで可視になります。その短い遅延が、高速かつグローバルであることのトレードオフです。
強み
- エッジのどこからでも、極めて高速で低レイテンシな読み取り。
- 自動的にグローバルレプリケート — 管理すべきリージョンがありません。
- シンプルな (アプリケーション・プログラミング・インターフェース。呼び出す少数のコマンドの集まり)——
get、put、delete、list、オプションの TTL(Time To Live。値が自動的に期限切れになるまで保持される時間)付き。 - 読み取り中心のワークロードでは大規模でも安価。使える無料枠あり。
- Workers と Pages Functions に直接バインドできます。
トレードオフ
- 結果整合性 — 書き込み直後に必ず正しくなければならないデータには不向きです。
- 書き込みは読み取りに比べて遅く、レート制限があります。
- 値のサイズには上限があり(約 25 MB)、R2 のような大容量ストレージではありません。
- クエリやリレーションはありません — 厳密にキーから値への対応のみです。
使うべきとき
設定、フィーチャーフラグ、キャッシュした API レスポンス、ルーティングテーブル、セッションの参照、そして数秒の鮮度低下を許容できる読み取り中心のデータに KV を使いましょう。
バイブコーディングとの相性
KV は、Worker にキャッシュや設定を追加するエージェントにとって手軽な成果です。バインディングを 1 つ、あとは get/put。結果整合性であることを明示し、書き込み後の読み取り保証が必要な場面でエージェントが KV に手を伸ばさないようにしましょう — そこでは D1 や Durable Object を指し示します。次のスニペットは名前空間をバインドし、値を初期投入します。
# 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"