キャッシュの種類と役割を整理する

に公開

キャッシュの種類と役割を整理する

キャッシュ(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-ControlETagLast-Modified)で制御可能。
  • Service Worker や IndexedDB を使えばオフラインキャッシュも実現可能。

使いどころ

  • ユーザーごとに変わらない静的リソース。
  • SPAフレームワークのリソース配布。

まとめ

  • Redis / Memcached … データキャッシュ。DB負荷を減らす。
  • Server Side … レスポンスキャッシュ。重い処理を避ける。
  • CDN … 静的ファイル配布を効率化。
  • Client Side … ブラウザやアプリ側でキャッシュ。

キャッシュを「どの層で行うか」を意識して設計すると、パフォーマンス改善の効果は大きくなる。

Discussion