Eviction 정책이란?
Redis의 메모리 관리
Memory 사용 한도 설정 => 지정하지 않으면 32bit에서는 3GB, 64bit에서는 0(무제한)으로 설정됨
maxmemory 100mb
maxmemory 도달한 경우 eviction 정책 설정
maxmemory-policy noeviction
maxmemory-policy 옵션
noeviction
: eviction 없음. 추가 데이터는 저장되지 않고 에러 발생(replication 사용시 master에
적용됨)allkeys-lru
: 가장 최근에 사용된 키들을 남기고 나머지를 삭제 (LRU: Least Recently Used)
allkeys-lfu
: 가장 빈번하게 사용된 키들을 남기고 나머지를 삭제 (LFU: Least Frequently Used)volatile-lru
: LRU를 사용하되 expire field가 true로 설정된 항목들 중에서만 삭제volatile-lfu
: LFU를 사용하되 expire field가 true로 설정된 항목들 중에서만 삭제allkeys-random
: 랜덤하게 삭제
volatile-random
: expire field가 true로 설정된 항목들 중에서 랜덤하게 삭제volatile-ttl
: expire field가 true로 설정된 항목들 중에서 짧은 TTL 순으로 삭제
caching 성격을 가진 경우 expire field가 있을 것이고 persistent한 성격을 가질 경우에 없을 것이기 때문에, 원하는 데이터에 대한 eviction을 처리하기 위하여 allkeys와 volatile 옵션이 각각 존재하는 것임