コンセプト
LRUは、最も最近使用されていない、つまり最も最近使用されていない、最も一般的に使用されるページ置換アルゴリズムの省略形であり、削除する最も最近使用されていないページを選択します。
LRU(最近使用されていない)とは、最近アクセスされていないデータを排除することです。LRUは、最近使用されたデータが将来使用される確率も高く、最近アクセスされていないデータが将来使用される確率を比較することを前提としています。低。
原理
LRUは通常、キャッシュされたデータをリンクリストの形式で格納します。新しく挿入またはアクセスされたデータは、リンクリストの先頭に配置されます。一定のしきい値を超えると、リンクリストの末尾のデータは自動的に削除されます。次の図は、LRUキャッシュの削除プロセスを鮮明に示しています。
手順:
1.新しくAを挿入し、キューの先頭にAを配置します
2. Bを新たに挿入し、Bをキューの先頭に配置すると、Aが自動的に2番目のシートを推奨します。
3.新しくCを挿入し、Cをキューの先頭に配置すると、Bが自動的に2番目のシートを推奨します。
4.新たにDを挿入し、Dをキューの先頭に配置すると、Cが自動的に2番目のシートを推奨します。
5.新たにEを挿入し、Eをキューの先頭に配置すると、Dが自動的に2番目のシートを推奨します。
6.新しいEを挿入し、キューの先頭にEを配置します。このとき、キューの長さはしきい値を超えており、テールデータAは自動的に削除されます。
7.データCにアクセスし、Cをキューの先頭に再配置します。
8.新しいEを挿入し、Eをキューの先頭に配置します。このとき、キューの長さはしきい値を超えており、テールデータBは自動的に削除されます。
達成する
LRUキャッシュのいくつかのJava実装を以下に示します。
1.二重リンクリスト(LinkedList )