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

初級の解説は準備中のため、初級の内容を表示しています。

概要 — まず全体をつかむ

同じ問い合わせを何度もDBに投げるのは、毎回分厚い辞書を引くようなもの。よく使う答えは手元にメモしておこう——それがキャッシュです。

詳細 — 1段階ずつ追う

これは何をする係?

よく引く単語を付箋に書いておけば、毎回辞書(※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に問い合わせが集中する

理解度チェック

そのまま解けます(成績は保存されません)。無料アカウントを作ると、学習の記録と進捗の山登りが始まります。

1. CDNと(アプリの)キャッシュの違いとして正しいのは?

2. (アプリの)キャッシュの狙いに最も近いのは?

3. キャッシュに答えがあって、そのまま返せる状態を何という?

4. キャッシュに答えが無い(miss)とき、バックエンドはどうする?

5. キャッシュの中身について正しいのは?

6. 元データが更新されたのに、キャッシュが古いメモを返してしまう問題を防ぐには何が要る?

7. 大元の正しいデータの置き場(辞書にたとえた原本)を指す略語を、英字2文字で答えてください。

8. キャッシュに答えが無く、DBまで取りに行くことを英語で何という?

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