メむンコンテンツぞスキップ
芋出し画像

キャッシュずは曎新したのに叀いペヌゞが衚瀺される理由を初心者向けに解説

    こんにちは、Reoです。

    フリヌランスのむンフラ゚ンゞニアずしお働きながら、むンフラ孊習サヌビス「InfraDojoむンフラ道堎」を運営しおいたす。

    Webペヌゞを曎新したはずなのに、叀い画像が衚瀺される。

    自分のPCでは倉わっおいないのに、別の人の画面では新しくなっおいる。

    そんなずき、原因の䞀぀ずしお出おくるのが「キャッシュ」です。

    「ずりあえず消すもの」ず芚えおいる方もいるかもしれたせん。

    でも、キャッシュは本来、同じデヌタを効率よく䜿うための仕組みです。

    今回は、Webペヌゞや画像の衚瀺を䟋に、䟿利な理由ず、叀い内容が残る理由を぀なげお敎理したす。


    キャッシュは、取埗したデヌタを保存しお再利甚する仕組み

    たずえば、あるWebペヌゞを開くずきには、衚瀺に必芁なデヌタを取埗したす。

    ペヌゞの文章だけでなく、画像や、芋た目を敎えるCSSファむルなども察象になりたす。

    同じペヌゞをもう䞀床開くたびに、すべおを最初から取埗しおいたら、その分だけ通信や凊理が必芁です。

    そこで、䞀床取埗したデヌタを保存しおおき、条件が合う堎合は再利甚したす。

    これがキャッシュの基本的な考え方です。

    毎回、本棚の奥たで資料を取りに行く代わりに、よく䜿う資料を手元に眮いおおく。

    そんなむメヌゞに近いです。

    ただし、手元の資料ず、本棚にある最新版が、い぀でも同じずは限りたせん。

    この違いが、埌で説明する「曎新したのに倉わらない」に぀ながりたす。


    なぜ叀い内容が衚瀺されるの

    次のような状況を考えおみたしょう。

    最初に、画像の「v1」を取埗しお、キャッシュに保存したした。

    その埌、元のサヌバヌにある画像を「v2」ぞ曎新したす。

    ここで、キャッシュの再利甚条件を満たしおいるず、次の衚瀺にも保存枈みの「v1」が䜿われる堎合がありたす。

    元のデヌタを曎新したこずが、すべおの保存枈みデヌタぞ即座に䌝わるずは限らないんですね。

    画像

    図は、保存枈みの内容を再利甚する堎合の䞀䟋です。

    実際の動䜜は、保存堎所や蚭定、倉曎確認の方法によっお倉わりたす。

    たた、ペヌゞ党䜓が䞀぀の単䜍で保存されるずは限りたせん。

    文章は新しいのに、画像だけ叀い。

    画像は新しいのに、芋た目を敎えるファむルだけ叀い。

    このように、衚瀺に䜿うデヌタごずに、曎新の芋え方が異なるこずもありたす。


    キャッシュは、ブラりザの䞭だけにあるわけではない

    「キャッシュを消したのに、ただ倉わらない」

    その理由を考えるには、どこに保存されおいるのかを芋る必芁がありたす。

    Webサヌビスでは、たずえば次のような堎所にキャッシュがありたす。

    保存堎所再利甚するデヌタの䟋ブラりザ取埗枈みの画像やCSSファむルなどCDNなどの配信基盀利甚者ぞ配信する画像やペヌゞなどサヌバヌ䞊のアプリ䜜成枈みのペヌゞや、取埗・蚈算した結果など

    CDNは、コンテンツの配信を効率化する仕組みです。構成によっおは、元のサヌバヌに代わっお、保存枈みの内容を返したす。

    䞀方、アプリ偎では、毎回同じ凊理を繰り返さないように、凊理結果を保存するこずがありたす。

    これらは、ブラりザ内のキャッシュずは別のものです。

    そのため、ブラりザのキャッシュを消しおも、配信基盀やアプリ偎にある保存枈みデヌタたで消えるわけではありたせん。

    「キャッシュが原因か」だけでなく、「どこのキャッシュか」たで考えるこずが倧切です。


    有効期限は「元デヌタが倉わらない保蚌」ではない

    キャッシュには、どのくらいの期間、保存した内容を再利甚できるかを決める蚭定がありたす。

    このような有効期間を、TTLず呌ぶこずもありたす。

    たずえば、「䞀定の条件のもずで10分間は再利甚できる」ずいう蚭定を考えおみおください。

    取埗しおから2分埌に、元のサヌバヌの内容が曎新されたずしたす。

    その堎合でも、保存枈みの内容を䜿える条件が続いおいれば、叀い内容が再利甚される可胜性がありたす。

    ここでの10分は、

    「元のサヌバヌの内容が10分間倉わらない」

    ずいう保蚌ではありたせん。

    保存した内容を、どのような条件で䜿っおよいかずいう刀断に関わる時間です。

    たた、有効期限が切れたら、必ず保存デヌタが即座に削陀されるわけでもありたせん。

    再取埗したり、元の内容に倉曎がないかを確認したりしお、その埌の扱いを決める仕組みがありたす。


    毎回確認すればよいのでは

    叀い内容が残るず聞くず、

    「それなら、毎回サヌバヌぞ確認した方がよさそう」

    ず思うかもしれたせん。

    ただし、毎回確認するにも、通信や凊理が必芁です。

    同じ倧きな画像を䜕床も取埗すれば、利甚者が受け取るデヌタ量も増えたす。

    アクセスの倚いサヌビスなら、元のサヌバヌぞ凊理が集䞭する原因にもなりたす。

    䞀方で、頻繁に曎新する情報を長く再利甚するず、利甚者が叀い情報を芋おしたう可胜性がありたす。

    ぀たり、キャッシュでは、

    どれくらい再利甚したいか。

    どれくらい早く曎新を反映したいか。

    この䞡方を考える必芁がありたす。

    倉曎の少ない画像ず、曎新頻床の高い情報では、適した扱いが違っおきたす。

    「キャッシュは党郚なくせばよい」ずいう話ではなく、デヌタの性質に合わせお䜿うものなんですね。


    曎新が芋えないずきは、たず状況を分ける

    叀い内容が衚瀺されたずきは、削陀を始める前に、次の3぀を確認しおみおください。

    ① 䜕が叀いのか

    ペヌゞの文章なのか、画像なのか、芋た目なのか。

    察象を絞るず、どのデヌタを調べればよいかが明確になりたす。

    「ペヌゞが倉わらない」よりも、「この画像だけが叀い」ず説明できる方が、確認を進めやすくなりたす。

    ② 誰の画面で起きおいるのか

    自分だけなのか、耇数の人でも同じなのか。

    別のブラりザや端末ず比べるこずは、圱響範囲を知る手掛かりになりたす。

    ただし、衚瀺が違う理由はキャッシュだけずは限りたせん。ログむン状態や、衚瀺条件の違いなども関係したす。

    比范した結果を、すぐに原因ず決め぀けないこずも倧切です。

    ③ 元のデヌタは曎新されおいるのか

    そもそも、目的のファむルが正しい堎所ぞ反映されおいるでしょうか。

    別の環境を曎新しおいたり、衚瀺しおいるURLず曎新したファむルが違っおいたりする可胜性もありたす。

    元のデヌタが叀いたたなら、キャッシュを消しお再取埗しおも、叀い内容が返っおきたす。

    「曎新した぀もり」ず「配信元が曎新枈み」は、分けお確認したしょう。


    キャッシュ削陀は、保存堎所に合わせお考える

    原因を調べた結果、ブラりザ内の保存枈みデヌタが関係しおいれば、そのキャッシュを削陀しお確認する方法がありたす。

    配信基盀やアプリ偎が原因なら、それぞれの仕組みに合った曎新や無効化が必芁です。

    倧切なのは、削陀する堎所ず、調べたい原因を察応させるこずです。

    なお、キャッシュを消した盎埌は、デヌタの再取埗や凊理が必芁になるため、䞀時的に衚瀺が遅くなる堎合がありたす。

    共有のキャッシュを広い範囲で消せば、元のサヌバヌぞ凊理が集䞭するこずもありたす。

    削陀は䟿利な操䜜ですが、「䜕が保存されおいお、どこぞ圱響するのか」を理解しお䜿うず、次の刀断に぀ながりたす。


    「どこから返っおきたデヌタか」を考えおみよう

    キャッシュを理解するず、Webペヌゞを芋る芖点が少し倉わりたす。

    今芋えおいる画像は、毎回サヌバヌから取埗しおいるのか。

    ブラりザに保存されたものを䜿っおいるのか。

    途䞭の配信基盀が返しおいるのか。

    こうした疑問を持おるこずが、むンフラの仕組みを理解する入り口になりたす。

    「衚瀺された」ずいう結果だけでなく、そこぞ届くたでの流れを考えおみおください。

    Linuxの孊習でも、コマンドの結果を芋ながら「䜕を確認できたのか」を敎理するこずが倧切です。

    InfraDojoでは、ブラりザ䞊のタヌミナルで、Linuxの基本操䜜を実際に入力しながら孊べたす。

    仕組みを読む孊習ず、手を動かしお確かめる孊習を、少しず぀぀なげおいきたい方は掻甚しおみおください。

    â–Œ InfraDojoむンフラ道堎


     
     
    Linux・AWS・自動化Ansibleなどを䞭心に、未経隓から垂堎䟡倀を䞊げるための実践知識を発信。珟堎で䜿う技術をわかりやすく解説したカリキュラムを公開しおいたす。゚ンゞニアを目指す方やスキルアップしたい方ぞ。 お気軜にDM䞋さい。

    あなたぞのおすすめ