2011-02-10 4 views
8

memcached의 항목이 만료되지 않도록 설정된 경우 LRU 퇴거가 면제됩니까?Memcached LRU 및 만료일

내가 본 문서는 어느 것이 우선적인지 명확한 그림을 그리지 않습니다. 내 생각에 LRU가 만료 된 항목에만 적용되는 것이 이상적입니다 (아마도 내부적으로 매우 복잡합니다).

답변

16

아니요, 면제되지 않습니다. Memcached는 영구 저장소가 아닌 캐시입니다. 그 안에있는 항목이나 전체 캐시 자체는 언제든지 사라질 수 있습니다 (그러나 가득 차 있거나 중요한 문제가있는 경우에는 그렇지 않을 수 있습니다).

메모리 사용량이 많은 상황에서 LRU 알고리즘은 필요하다고 느끼는 것을 제거합니다.

memcached의 캐시 란 무엇입니까?

캐시 구조는 LRU (Least Recently Used)와 만료 시간 초과입니다. memcached에 항목을 저장하면 캐시에서 유효 기간을 지정할 수 있습니다. 영원히, 또는 앞으로 어떤 시간입니다. 서버의 메모리가 부족한 경우 만료 된 슬래브가 먼저 교체 된 다음 사용되지 않은 가장 오래된 슬래브가 다음으로 이동합니다.

시스템에 만료 된 데이터 영역이 없으면 가장 최근에 사용하지 않은 메모리 블록 (슬랩)을 버립니다.

+0

memcached가 영구적이지는 않지만, LRU 또는 LFU 축출에서 항목을 제외 할 수있는 다른 캐싱 솔루션이 있습니다. – Mark

3

docexpirezero_does_not_evict이 'true'로 설정되면 exptime이 0 인 항목을 제거 할 수 없다고 말합니다.