Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Cache APIを世代で無効化する

Avatar for nyamadan nyamadan
September 23, 2026

Cache APIを世代で無効化する

Cloudflare WorkersのCache APIとDurable Objectを、つかって古いキャッシュを即座に無効化する取り組みを紹介します

Avatar for nyamadan

nyamadan

September 23, 2026

More Decks by nyamadan

Other Decks in Programming

Transcript

  1. 作っているもの リーダー AI RSS 取得 1. と で を定期更新 Queue

    Cron RSS 要約 2. で記事を3行に整理 Workers AI 3. 閲覧 から記事一覧を読み出す D1 5
  2. キャッシュの流れ 1 初回アクセス をキーに加えてキャッシュを作る 12 から番号を取得 1 Durable Object 2

    Cache API 3 D1 4 12 を確認 v2-12 MISS から記事一覧を読む 最新の一覧を取得 結果をCache APIへ保存 v2-12 12
  3. キャッシュの流れ 3 フィード更新 へ保存してから番号を13へ進める D1 1 新しい記事をD1へ保存 2 Durable Object

    3 古いキャッシュは残す と の番号を進める 先にデータを更新 12 → 13 v2-12 は別更新。番号の更新完了までは旧世代が読まれ得る D1 Durable Object 14
  4. キャッシュの流れ 4 更新後の初回アクセス の更新成功後、13のキャッシュを新しく作る Durable Object から番号を取得 1 Durable Object

    2 Cache API 3 D1 4 13 を確認 v2-13 MISS から記事一覧を読む 更新後の一覧を取得 結果をCache APIへ保存 v2-13 15
  5. まとめ 番号を進めて参照先を切り替える へ保存 D1 新しい記事を先に書き込む → で番号を進 める Durable Object

    キャッシュの世代を12から13へ → 新しいキーで読む 新しい番号の取得後は旧世代を参照し ない 古いキャッシュは削除せず期限切れに任せる 18
  6. もう一つの方法 とは Cache-Tag タグを付ける Cache-Tag: feed → する purge へタグを指定

    Cloudflare API → 次はMISS 関連キャッシュをまとめて無効化 20
  7. 余談 を選ぶなら Cache-Tag 関連するキャッシュを まとめて消したい 通常のGETはそのまま への追加の往復は不要 Durable Object の

    タグ単位で無効化 一致するキャッシュをグローバルにpurge は、削除完了ではなく要求の受理を示す purge API HTTP 200 21