LRU 캐시 교체 정책을 구현하면 캐시가 용량에 도달 할 때 가장 최근에 액세스 된 항목을 제거하여 메모리 사용을 최적화 할 수 있습니다. 이 가이드는 다양한 프로그래밍 환경에서 LRU 캐시를 개발하는 실용적인 단계를 제공합니다.

LRU 캐시 이해

LRU (Least 최근에 사용) 캐시는 공간이 필요할 때 데이터가 퇴치하는 항목 사용량을 결정하기 위해 항목 사용량을 추적합니다. 최근에 액세스 된 항목이 우선적으로 사용 된 데이터를 사용할 수 있도록합니다.

LRU Cache의 핵심 구성 요소

효과적인 LRU 캐시는 일반적으로 두 개의 데이터 구조를 결합합니다.

  • Hash Map: 캐시 항목에 빠른 액세스를 제공합니다.
  • Doubly Linked List:는 프론트에서 가장 최근의 아이템 사용량을 유지한다.

단계별

LRU 캐시를 구현하기 위해 이러한 단계를 따르십시오.

  • 해시 맵 및 doubly 연결 목록 초기화.
  • 데이터 액세스에서, 목록의 앞에 항목을 이동합니다.
  • 캐시가 용량을 초과하면 목록의 끝에서 아이템을 제거하십시오.
  • 삽입과 탈취 중에 해시 맵을 업데이트하십시오.

Python에서 샘플 구현

Python의 LRU 캐시의 간단한 예입니다.

Note: 이 코드는 구현을 단순화하는 OrderedDict의 수집 모듈을 사용합니다.

₢ 킹

컬렉션에서 import OrderedDict

종류 LRUCache:

def init (각각각, 수용량):

self.cache = 주문형식()

self.capacity = 용량

def get(self, key):

self.cache에 key가없는 경우:

반환 -1

self.cache.move to end(키)

self.cache를 반환[key]

, 열쇠, 가치 (자신, 열쇠)를 뒀습니다:

self.cache[key] = 값

self.cache.move to end(키)

len (self.cache) > self.capacity:

self.cache.popitem(마지막=팔)

₢ 킹