Web Developer Roadmap 2021に乗っ取って勉強する~キャッシュ編~
前回の記事はこちら.
今回は,このロードマップの続きの
キャッシュの部分について勉強しました.
今回読んだ本
今回はこの本を買いました.
「Web配信の技術」という本です.キャッシュについては今までのロードマップ上のネットワーク周りやAPI周りの勉強の時に,書籍上で少しだけ触れていましたが,あまり深くは書いていない場合がほとんどだったので,本を探すことにしました.キャッシュに関する本を探すのは結構大変でした😫 この本以外ではあまりヒットしなかったし,この本の評価もそこまで悪くないようなので買うことにしました.この本を読んでから分かったのですが,キャッシュに関する本が世の中にほとんど存在していない,というわけではなく,僕のような「キャッシュがそもそも何なのかほぼわかっていない」というレベルの人が一冊目に選べるような本がない,といった感じですかね.この本のサブタイトルにもある,HTTPキャッシュやリバースプロキシ,CDNといった用語について知っているレベルの人向けの本はあるんじゃないかなと思います.
この本のサイズ感としては,そこまで大きくないです.技術書にしては小さめの部類に入るのではないでしょうか.厚さはそこそこあります.
読んだ感想
本の中でも言及されていますが,「Web配信」と聞くと,動画配信サービスのような配信技術に関する書籍のように思ってしまいますが,ここでいう配信とは,動画はもちろん,普通のテキストや画像といったリソース全般を提供することを指しています.僕も事前にレビューでこの点については把握していたものの自分で読んでみるまで半信半疑でしたが,確かにそのようでした😁.購入を検討している方はこの点を知っておくといいかもしれません,
僕はこの本を読むまではキャッシュについてほぼ知らなかったので,リバースプロキシとかCDNといわれてもよくわからず多少不安でしたが,そこまで難しい書き方をしていなかったので助かりました.あまり堅苦しい文体ではありませんが,技術書ではあまり見かけない口語的な言い回し(?)が結構多く,ブログやLTのような文体に近いかなと思いました.
個人的には第一章〜第四章までの部分が読んでいて勉強になりました.キャッシュを使うにあたって,個人情報が漏れないようにしつつ,キャッシュヒット率を上げられるようにいろいろな観点を考慮しないといけないので,設計段階からかなり大変そうだなと思いました😫.また,前回のAPI編でも紹介されていましたが,URI(URL)の命名もキャッシュのことを考えるとかなり重要なんだなと改めて思いました.
この本ではVarnishというソフトウェアが頻出しますが,Varninshありきの紹介はそこまで多くはなく,キャッシュをあつかうソフトウェア全般に共通していえることが多いので,そのあたりは心配しなくてもいいかもしれません(あくまで僕のような初学者は,ですが.).
本だけでは足りなかった部分の補足勉強
ロードマップと今回読んだ本を照らし合わせてみると,サーバーサイドとCDNについてはカバーできそうでしたが,クライアントサイドやRedis,Memcachedについては追加で勉強が必要そうでした.
・クライアントサイド
どのサーバからみたクライアントサイドなのかはロードマップからはわかりませんでしたが,おそらくブラウザやモバイルアプリといったものが対象でしょう.クライアントサイドのキャッシュについては以下のサイトで少しだけ知識を増やしました.
Cookie以外のものは知らなかったです.
・Redis
Redis自体に関しては,過去のDB編にてNoSQL周りで少し触ってみたことがありました.後述のMemcachedと比較する際に知識が必要でした.
・Memcached
Memcachedは勤務先のインフラ環境で採用されているソフトウェアだったので耳にしたことはありましたが,実態はよく知らなかったです.Memcachedについて調べていると,Redisとの比較に関するページがよく出てくるので,勉強になりました.
ロードマップでもかなり前から出てきているし,そもそもエンジニアとして働いていたら何度も出てくるワードではあるのですが,この比較記事で改めてマルチスレッドについて調べていました.結構恥ずかしいですね😖
さいごに
今回は知っているようで全く知らなかったキャッシュについて勉強しました.勉強に使っていた本でもなんども紹介があった,「キャッシュ事故」について,なんとなく概要は理解できた気がするので,最近あったキャッシュ事故について少し調べて知見を深めようと思います.