🚀 新規事業

kv-cache-pattern

最終更新 2026年05月09日 / 40_新規事業/SCALE_Build/カタログ/機能集/kv-cache-pattern.md

Cloudflare KV キャッシュ

用途

Cloudflare KV を使った高速キャッシュパターン。TTL管理含む。

特徴

  • TTL管理
  • 型安全
  • バッチ取得

コード(コピペ用)

// Cloudflare KV キャッシュラッパー(TTL付)
type Env = { CACHE: KVNamespace };

export async function getCached<T>(
  env: Env,
  key: string,
  ttlSec: number,
  fetcher: () => Promise<T>
): Promise<T> {
  const cached = await env.CACHE.get(key, 'json');
  if (cached) return cached as T;
  const fresh = await fetcher();
  await env.CACHE.put(key, JSON.stringify(fresh), { expirationTtl: ttlSec });
  return fresh;
}

// 一括無効化(タグ方式)
export async function invalidateByPrefix(env: Env, prefix: string) {
  const list = await env.CACHE.list({ prefix });
  await Promise.all(list.keys.map((k) => env.CACHE.delete(k.name)));
}

// 使い方:
// const data = await getCached(env, 'user:123', 300, () => fetchUser(123));

使い方

対象プロジェクトに該当ファイルをコピーして、props を流し込むだけ。

注意事項

  • 依存パッケージを忘れず追加