キャッシュ:定義とキャッシングが使われるすべての分野

キャッシュが使われる分野を、ハードウェアからウェブまでウィキペディア・MDN・WordPress公式ドキュメントの分類に合わせて1つのツリーにまとめました。CPU、オペレーティングシステム、データベース、ブラウザがすべて同じ名前を使うため、「消す」という言葉も、どの層かによって消える対象が変わります。
キャッシュは、よく使うデータやすぐに必要になるデータを元より速いストレージに一時的に保存しておき、同じリクエストが来ると元の代わりにそのコピーで応答します。
英語版ウィキペディアの Cache (computing) 記事は、キャッシュをCPUキャッシュ・GPUキャッシュのようなハードウェアキャッシュと、ディスク・ウェブ・DNS・データベースキャッシュのようなソフトウェアキャッシュに分けています。下のツリーはこの分類をキャッシュが置かれる場所ごとにまとめ、ウェブキャッシュはMDNのprivate cacheとshared cacheの分類に従いました。
ブラウザ・CDN・サーバー内部キャッシュがWordPressのリクエスト1件を処理する順序は、 ウェブサイトキャッシュ&サーバー内部キャッシュ:WordPressでキャッシュが動く仕組み の記事のシミュレーターで確認できます。
Ⅰ. ユーザー端末
パソコンやスマートフォンのようなユーザー端末のキャッシュは、OSキャッシュ、ブラウザキャッシュ、モバイルアプリのキャッシュに分けられます。
ディスクキャッシュ(ページキャッシュ)はディスクから読んだデータをメモリに残し、オペレーティングシステムのカーネルが管理します。DNSキャッシュは最近照会したドメインとIPアドレスを保存します。
同じリソースを再びリクエストするとき、サーバーまで行かないか、変更されたかだけを確認します。Service Worker(Cache API)を使うと、オフラインでも保存されたリソースでウェブアプリを開けます。
大容量コンテンツを扱うアプリは、受け取ったデータと最近見たリストを端末に保存し、同じデータを再び受け取りません。
Ⅱ. サーバー・アプリケーションのキャッシュ
サーバー側のキャッシュは、リクエストがサーバーに届いた後、ページを作る過程に付くキャッシュです。WordPress公式ドキュメントは、これをキャッシュプラグイン(ページキャッシュ)、オブジェクトキャッシュ、サーバーキャッシュ(OPcacheのようなopcodeキャッシュ)に分けて説明しています。
同じページのリクエストには、PHPを実行せずに保存されたコピーを送ります。キャッシュプラグインとウェブサーバーのキャッシュがあります。
同じファイルを再び実行するとき、コンパイルを省きます。PHP 5.5から標準で含まれています。
よく使うデータをメモリストアに保存し、同じクエリを繰り返しません。
ウェブフレームワークが、レンダリングしたテンプレートとクエリ結果を独自のキャッシュに保存します。
Ⅲ. コンテンツ配信/ネットワークインフラのキャッシュ
ネットワークインフラのキャッシュは、訪問者とオリジンサーバーの間でコピーで応答し、物理的な距離とオリジンサーバーの負荷を減らします。HTTPキャッシュ標準では、複数の訪問者が共有するshared cacheにあたります。
世界中に分散したサーバーのうち、訪問者に最も近いサーバーから配信します。構造と利点は CDNとは?CDNを使う理由と5つの利点 の記事にあります。
フォワードプロキシは企業ネットワークのようにクライアント側の前段で、リバースプロキシはサーバーの前段で応答を保存します。
ネットワーク機器はARPキャッシュに、通信事業者・公開DNSリゾルバーは照会結果をレコードのTTLの間保存します。
Ⅳ. データベース・ストレージシステムのキャッシュ
データベースとストレージはディスクの入出力が遅いため、よく読むデータをメモリに載せて使います。
よく読むデータとインデックスをメモリに保持します。MySQLのクエリキャッシュは8.0で削除され、MariaDBには残っていますが標準ではオフです。
ハードディスクのコントローラーに内蔵されたメモリとSSD内のDRAMがデータを一時的に保存し、入出力の遅延を減らします。
Ⅴ. ハードウェアレベルのキャッシュ
ハードウェアキャッシュはCPUとGPUの中にある高速メモリで、メインメモリ(RAM)より速くデータを処理します。
L1はコアごとに別々にあり命令キャッシュとデータキャッシュに分かれ、L3はコア全体で共有します。メモリ管理ユニット(MMU)は仮想アドレスを物理アドレスに変換した結果をTLBに保存します。
ゲーム、3Dグラフィックス、機械学習の演算でGPUの処理効率を高めます。
Ⅵ. クラウド/仮想化環境のキャッシュ
クラウドと仮想化環境では、コンテナイメージ、関数の実行環境、ビルド成果物を再利用し、デプロイと実行の時間を短縮します。
Dockerイメージは複数のレイヤーで構成され、変更されていないレイヤーは再ビルドや再ダウンロードをしません。
呼び出しが終わった実行環境を一定時間保持し、次の呼び出しで再利用して初期化時間(Cold Start)を短縮します(Warm Start)。
繰り返しのビルド時間を短縮します。
🔢 FAQ & おすすめコンテンツ
ℹ️ 提携について
当サイトのコンテンツにはアフィリエイトリンクが含まれています。訪問者がこのリンクを通じて商品やサービスを購入すると、当サイトは販売元から手数料を受け取ります。この過程において、購入者が支払う金額(イベント割引適用で金額が下がります↓)は上昇しません。掲載されている価格・割引・在庫情報は作成時点のものであり、実際とは異なる場合がありますので、ご購入前に販売元にて最終確認をお願いいたします。商品の選定および評価は独自の基準に基づいて行われており、手数料の支払いの有無は紹介順や評価内容に影響を与えません。








