Table of Contents
LRUキャッシュ交換ポリシーの実装は、キャッシュがその容量に達すると、最近アクセスされたアイテムを削除することで、メモリの使用状況を最適化するのに役立ちます。 このガイドは、さまざまなプログラミング環境でLRUキャッシュを開発するための実用的な手順を提供します。
LRUキャッシュの理解
LRU(最近使用したイースト)キャッシュは、必要なときにどのデータを緩和するのかを判断するために、アイテムの使用状況を追跡します。最近アクセスしたアイテムを優先し、頻繁に使用したデータが利用できるようにします。
LRUキャッシュのコアコンポーネント
有効な LRU キャッシュは、通常、2 つのデータ構造を組み合わせます。
- ハッシュマップ:]] キャッシュアイテムへの高速アクセスを提供します。
- ドゥーブリーリンクリスト:[は、アイテムの使用順を、フロントで最新の状態に維持します。
実装工程
LRU キャッシュを実装する手順に従ってください。
- ハッシュマップとドーブリーリンクリストを初期化します。
- データアクセス時に、リストの先頭に項目を移動します。
- キャッシュが容量を超えた場合、リストの最後に項目を削除します。
- インサートや削除時に、ハッシュマップを適切に更新します。
Python のサンプル実装
Python の LRU キャッシュの簡単な例は次のとおりです。
[注記:]]]]このコードは、実装を簡素化するOrderedDict用のコレクションモジュールを使用します。
'```python を ' に ' python を ' に ' に ' を ' python' に ' に ' を ' に ' に ' に ' python' を ' に ' に ' に python' を ' に ' に ' に ' を ' に ' と ' python' を に に と ' に を に ' ' に と は ' python を に に に は は は は は は は は は は は は は は は は は は は は は は は は です。
輸入品から注文された品
LRUCache をクラス分ける:
def init (自分自身、容量):
self.cache = 注文済みDict()
self.capacity = 容量
def は(自己、キー):得ます
もしキーが self.cache でなければ:
リターン -1
self.cache.move to end(key) を自動で実行
self.cache[key] を返す
def は(自己、キー、価値):置きました:
self.cache[key] = 値
self.cache.move to end(key) を自動で実行
もし、もし(self.cache) > self.capacity:
self.cache.popitem(last=False) は、
ツイート