기본 콘텐츠로 건너뛰기

라벨이 redis-benchmark 재현성인 게시물 표시

Redis eviction 정책 선택이 성능에 미치는 영향과 실무 가이드

Redis eviction 정책 선택이 성능에 미치는 영향과 실무 가이드 AI 생성 이미지: Redis eviction 정책 선택이 성능에 미치는 영향 문제 정의 — Redis eviction이 성능에 미치는 이유 메모리가 부족하면 Redis는 maxmemory-policy에 따라 키를 제거하거나 쓰기를 실패시켜 메모리를 확보한다. 이 동작은 단순한 공간 회수 이상의 영향을 미친다. 즉시 발생하는 영향으로는 명령 지연(메모리 초과 시 즉시 eviction 시도), CPU 사용 증가(샘플링 기반 LRU/LFU 연산), 그리고 삭제가 AOF/RDB에 기록되며 발생하는 디스크 I/O 증가가 있다. 특히 Redis eviction 정책 선택이 성능에 미치는 영향은 운영, 응답성, 가용성 측면에서 곧바로 드러난다. 간단한 체크리스트: maxmemory와 정책을 점검하고 핵심 키의 TTL을 관리하며, evicted_keys와 메모리 사용량에 대한 경보를 설정하라. SLA·레이턴시: 캐시 히트율이 떨어지면 백엔드 DB 호출이 늘어 레이턴시와 응답 시간의 변동성이 커진다. 데이터 가용성: 세션, 락, 토큰 같은 핵심 키가 유실되면 애플리케이션 오류와 재시도가 급증한다. 운영 부담: 다량의 evicted_keys 발생이나 메모리 스파이크는 모니터링 알림과 긴급 스케일링을 촉발한다. Redis의 주요 eviction 정책과 내부 동작 원리 Redis는 메모리 한도를 초과하면 설정된 eviction-policy에 따라 키를 삭제하거나 추가 쓰기 요청에 OOM 오류를 반환합니다. 주요 정책과 동작 방식은 아래와 같습니다: noeviction — 메모리가 한도에 도달하면 추가 쓰기 시 OOM 오류를 반환하며 키는 제거되지 않습니다. allkeys-lru / volatile-lru — 엄밀한 LRU 대신 샘플링 기반 근사 LRU를 사용합니다(기본 샘플 크기 5). allkeys는 전체 키를, volatile은 만료가 설정된 키만 대...