Table of Contents
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(마지막=팔)
₢ 킹