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) は、

ツイート