【エルアールユーキャッシュ】
LRUキャッシュ とは?
💡 使ってないものから順に片づける、お部屋のお掃除ルール
📌 このページのポイント
まさにそのとおり!キャッシュの容量には限りがあるから、いっぱいになったときに「一番長いこと使ってないデータ」を捨てるルールだよ。冷蔵庫の中身を整理するとき、一番古くて手をつけてない食材から処分するのと同じだね。
じゃあ最近使ったデータは残るってこと?
そう!アクセスされるたびにそのデータは「最近使った」として先頭に移動するんだ。だから常に末尾にいるデータが一番長く触られてない、追い出し候補ってわけだね。
実装ってどうやるの?配列で管理するのかな?
LRU以外のキャッシュ戦略ってあるの?
あるよ!LFU(Least Frequently Used)は使用頻度が一番低いものを追い出す方式。FIFO(First In, First Out)は入った順番に追い出す。あとARC(Adaptive Replacement Cache)は最近使った頻度と回数を両方考慮する賢いやつだね。
面接でLRUキャッシュを実装しろって出るって聞いたけど、本当?
有名な話だね。LeetCodeの「LRU Cache」は定番中の定番で、計算量O(1)で get と put を実装する問題だよ。データ構造の理解度を見るのにちょうどいいから、面接で頻出なんだ。
実際のシステムだと、どんなところで使われてるの?
📖 おまけ:英語の意味
「Least Recently Used Cache」 = 最も最近使われていないキャッシュ
💬 Least Recently Used、つまり「一番長く放置されてるやつ」を追い出すルールだよ