zudo-cloudflare-wisdom

Type to search...

to open search from anywhere

KV(キーバリュー)

作成2026年4月4日Takeshi Takatsudo

Cloudflare KV ネームスペースの使用パターン

概要

KV はグローバルで低レイテンシのキーバリューストア。結果整合性 — 書き込みは約60秒以内にグローバルに伝播するが、その間は古いデータを返す可能性がある。

セットアップ

ネームスペースの作成

npx wrangler kv namespace create "MY_KV"

出力されたネームスペース ID を wrangler.toml に追加:

[[kv_namespaces]]
binding = "MY_KV"
id = "abc123def456ghi789"

関数での使用

interface Env {
  MY_KV: KVNamespace;
}

// 読み取り
const value = await env.MY_KV.get("key");
const json = await env.MY_KV.get("key", { type: "json" });

// 書き込み
await env.MY_KV.put("key", "value");
await env.MY_KV.put("key", JSON.stringify(data));

// 有効期限付き書き込み(TTL は秒)
await env.MY_KV.put("key", "value", { expirationTtl: 3600 });

// 削除
await env.MY_KV.delete("key");

// キーの一覧
const list = await env.MY_KV.list({ prefix: "logs:" });

💡 重要でない書き込みには waitUntil を使用

context.waitUntil() はレスポンス送信後に非同期処理を実行できる。ロギング、アナリティクス、その他の重要でない書き込みに使用する。

注意点

  • 結果整合性: 書き込み直後の読み取りは古いデータを返す可能性がある
  • 512バイトのキー制限: キーは512バイトを超えられない
  • 25 MiB の値制限: 値は25 MiB を超えられない
  • リストのページネーション: list() は1回の呼び出しで最大1000キーを返す