【きゃっしゅ】

キャッシュ とは?

💡 よく使うデータを「手元に置いておく」高速化の仕組み
📌 このページのポイント
クライアント リクエスト キャッシュ 確認 ヒット(高速) ミス オリジン サーバー 保存して返却 速度比較 ヒット 速い ミス 遅い キャッシュヒット時はオリジンへアクセスせず高速応答。ミス時はオリジンから取得し保存。
キャッシュの仕組み
ひよこ ひよこ

キャッシュってどこにあるの?

ペンギン先生 ペンギン先生

いたるところにあるよ。①CPUキャッシュ(CPUチップ内、ナノ秒で応答)、②メモリ(RAM)、③ディスクキャッシュ(SSD上)、④ブラウザキャッシュ(画像やCSSを保存)、⑤CDNキャッシュ(世界中のエッジサーバー)、⑥アプリケーションキャッシュ(Redis等)。コンピュータは多層のキャッシュで高速化しているんだ

ひよこ ひよこ

ブラウザの「キャッシュをクリア」って何?

ペンギン先生 ペンギン先生

ブラウザは訪問したサイトの画像やCSSJSを保存して、次回アクセス時に再ダウンロードしなくて済むようにしている。でもサイトが更新されてもキャッシュが残っていると古い表示になることがある。そんなときに「キャッシュをクリア」で保存データを削除するんだよ。Ctrl+Shift+Rで強制リロードもできるよ

ひよこ ひよこ

キャッシュの難しいところは?

ペンギン先生 ペンギン先生

「キャッシュの無効化と名前付けは、コンピュータサイエンスの2大難問」というPhil Karltonの名言があるよ。データが更新されたのにキャッシュが古いまま(stale cache)だと不整合が起きる。TTL(有効期限)の設定、キャッシュバスティング(ファイル名にハッシュを付けて更新を検知)、適切なCache-Controlヘッダの設計が重要だね

ひよこ ひよこ

Redisキャッシュって何?

ペンギン先生 ペンギン先生

Redisはインメモリ(メモリ上で動作する)データストアで、DBクエリの結果やセッション情報をキャッシュするのに最適だよ。DBに毎回クエリする代わりにRedisに保存すれば、レスポンスが数ms〜数十msに短縮される。ただしメモリ上なので、キャッシュが消えてもDBから再取得できる設計にしておくことが重要だね

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「キャッシュ」って出てきたら「よく使うデータの一時保存で高速化する仕組み」と思えればだいたいOK!
📖 おまけ:英語の意味
「Cache」 = 隠し場所・貯蔵庫
💬 フランス語の「cacher(隠す)」が語源。データを手元に隠し持って高速アクセスするイメージだよ
← 用語集にもどる