定義
キャッシュ(Cache)は、よく使うデータや、もう一度使われそうなデータを、より速くて近い場所に一時的に保存しておく技術です。毎回遠くの保管場所や元のサーバーまで取りに行かず、手近な一時置き場からすぐデータを取り出せるので、処理にかかる時間を大きく減らせます。
なぜ机の上に本を置いておくの?
本を読むたびに2階の書斎や図書館まで歩いて行くとしたら、かなり時間がかかりますよね。だから私たちは、いま読んでいる教科書やよく引く辞書を、部屋の机の上に置いておきます。手を伸ばせばすぐ届く距離に置いておくわけです。
パソコンやスマホも、まったく同じやり方で仕事をしています。複雑な計算を一手に引き受ける中央処理装置(CPU)や、私たちが使うWebブラウザは、データを探しに遠くの記憶装置や海外のサーバーまで行こうとすると、たくさんの時間が必要になります。
そこで、最近一度読み込んだ写真やWebページのファイル、計算結果のようにもう一度使う可能性が高いデータを、とても近くて速い一時的な記憶スペースにあらかじめ置いておきます。こうして前もって手元に用意しておいた一時データのことを、キャッシュと呼びます。
日常でも、よく使う筆記用具を引き出しの奥ではなくペン立てに立てておきますよね。機器も、よく使うデータをすぐ横に用意しておくのです。
キャッシュヒットとキャッシュミス
コンピューターは、必要なデータを探すとき、まずキャッシュの中をそっとのぞきます。探しているデータがキャッシュの中におとなしく入っていれば、これをキャッシュヒット(Cache Hit)と呼びます。手を伸ばして机の上の本をすっと取るようなものなので、画面があっという間に開きます。
反対に、キャッシュに探しているデータがなければ、これをキャッシュミス(Cache Miss)といいます。この場合は仕方なく、元のデータがある遠くの本体ストレージや、海の向こうのWebサーバーまで直接取りに行かなければなりません。机の上に本がなくて、結局書庫まで行ってくる状況です。
書庫からデータを持ってきたコンピューターは、「また探すかも」と考えて、そのデータをキャッシュにこっそりコピーしておきます。こうしておけば、次からはまた速いキャッシュヒットになれるからです。
日常生活で、Webサイトを初めて開いたときより2回目のほうが読み込みがはっきり速くなるのも、このキャッシュヒットのおかげです。
もう少し正確にいうと:万能ではない理由
もう少し正確にいうと、キャッシュは無限にデータをためておけるわけではありません。特にCPUの中のキャッシュのように超高速のメモリを使うものは、性能が高い代わりに価格がとても高いので、容量を小さくせざるをえません。ブラウザやアプリのキャッシュのように記憶装置に置くものも、場所を無限に使えるわけではありません。
スペースがいっぱいになると、一部のデータを空けるしかありません。このときコンピューターは、たとえば一番長く使われていないデータを選んで捨て、その場所に新しいデータを入れる、といったルールを使います。スマホの設定でときどき押す「アプリのキャッシュを削除」は、記憶装置にたまったアプリの一時データを人の手で空にする作業です。
もうひとつの問題は、データの新しさです。元のWebページやサーバーの写真が新しくなっているのに、キャッシュに古いデータが残ったままだと、的外れで古い画面を見ることになります。
最新ニュースや更新されたWebページがうまく表示されないとき、強めに再読み込みを押してキャッシュを飛ばし、サーバーから新しく受け取る理由は、まさにここにあります。
よくある誤解
キャッシュを消すと、アカウント情報や大事な写真ファイルがすべて消えてしまう。
キャッシュは、速度を上げるために一時的にコピーしておいたデータにすぎません。元のファイルやアカウント情報とは関係がないので、キャッシュを消しても安全です。
日常で出会う場面
よく訪れるポータルサイトのロゴやアイコンが、再読み込みなしですぐ表示される現象です。
スマホのYouTubeアプリで、最近見た動画リストのサムネイル画像がすぐ表示される仕組みです。
つまり ひとことで
よく探すデータを近くにあらかじめコピーしておき、すばやく取り出せるようにする一時保管の技術です。