✨
キャッシュの種類と役割を整理する
キャッシュの種類と役割を整理する
キャッシュ(Caching)は、同じデータや処理結果を繰り返し計算せずに再利用して、パフォーマンスを改善する仕組みです。
ここでは、Webアプリケーション開発でよく利用されるキャッシュの種類を整理します。
1. Redis / Memcached ― データキャッシュ(アプリ寄り)
特徴
-
データベースとアプリの間に置く「インメモリキャッシュ」。
-
Redis
- キー・バリューに加えてリスト・セット・ハッシュなどの構造をサポート。
- TTL(有効期限)設定、Pub/Sub、永続化など多機能。
-
Memcached
- シンプルで軽量なキー・バリュー型。
- 分散性と高速性に強い。
使いどころ
- 頻繁に参照されるランキングや設定値。
- 集計済みデータなど重い処理結果。
- セッションの保存。
2. Server Side Cache ― サーバー層での結果キャッシュ
特徴
- アプリコード内で処理結果をキャッシュする仕組み。
- Redis/Memcachedを内部的に使う場合も多い。
使いどころ
- 毎回同じレスポンスを返すAPI。
- 外部APIコール結果やテンプレートレンダリング結果。
3. CDN Cache ― 静的ファイル配布のキャッシュ
特徴
- CDN(Content Delivery Network) が世界中のキャッシュサーバーから静的ファイルを配布。
- オリジンサーバーへのアクセスを減らし、遅延も少ない。
使いどころ
- 画像や動画など大容量コンテンツ。
- CSS/JSやフォントなど静的リソース。
4. Client Side Cache ― ブラウザ・アプリでのキャッシュ
特徴
- ユーザーの環境(ブラウザやアプリ)に保存される。
- HTTP ヘッダ(
Cache-Control、ETag、Last-Modified)で制御可能。 - Service Worker や IndexedDB を使えばオフラインキャッシュも実現可能。
使いどころ
- ユーザーごとに変わらない静的リソース。
- SPAフレームワークのリソース配布。
まとめ
- Redis / Memcached … データキャッシュ。DB負荷を減らす。
- Server Side … レスポンスキャッシュ。重い処理を避ける。
- CDN … 静的ファイル配布を効率化。
- Client Side … ブラウザやアプリ側でキャッシュ。
キャッシュを「どの層で行うか」を意識して設計すると、パフォーマンス改善の効果は大きくなる。
Discussion