# キャッシュ — よく使う答えを手元に置く係

> レベル: 初級 ／ 対象: 大人
> 出典: Kotowary — https://kotowary.com/learn/units/cache?level=beginner&audience=adult
同じ問い合わせを何度もDBに投げるのは、毎回分厚い辞書を引くようなもの。よく使う答えは手元にメモしておこう——それが**キャッシュ**です。

## これは何をする係？

よく引く単語を**付箋**に書いておけば、毎回辞書（※1 DB）を引かずに済みます。キャッシュはこの付箋。**よく使う答えを手元に置き、DBまで行かずに速く返す**係です。

ポイントは、キャッシュの中身は**消えてもよい**こと。無ければDBに取りに行けばいいので、あくまで「近道」です。

**登場人物メモ**:

- **※1 DB** — 大元の正しいデータの置き場（辞書）
- **※2 hit／miss** — 手元にある（hit）／無くてDBへ（miss）

## 仕事の流れ

1. バックエンドが「この答えある？」とキャッシュに聞く
2. **あれば即返す**（hit・速い）
3. **無ければDBに取りに行き**（miss）、その答えをキャッシュに置いてから返す
4. 次からは、同じ問い合わせはキャッシュから即返せる

## CDNとの違い

名前が似ていますが役割が違います。

- **CDN** — “配信”の近道。画像など**変わらないもの**を、利用者の**近くから**配る
- **キャッシュ** — “処理”の近道。**よく使う答え**を手元に置き、**DB往復を減らす**

どちらも「速くするための、消えてよい控え」という点は共通です。

## ⚠️ うまくいかないとき

- **古い値が残る** — 元データが変わったのに、古いメモを返してしまう（無効化が要る）
- **キャッシュが飛ぶとDB殺到** — 一斉にmissが起きて、DBに問い合わせが集中する
