본문 바로가기
Q&A해결2025년 4월 5일1분 읽기

Redis SETNX로 분산 락 구현했는데 데드락이 발생합니다 — TTL 설정 문제

D
DB담당자
조회 911댓글 2

Redis SETNX로 분산 락 구현했는데 데드락이 발생합니다 — TTL 설정 문제 관련 질문입니다.

Redis 서버 메모리가 계속 증가하고 있습니다:

$ redis-cli info memory
used_memory_human:3.8G
used_memory_peak_human:4.1G
maxmemory_human:4G

TTL을 설정했는데도 메모리가 줄지 않습니다. eviction policy는 어떻게 설정해야 하나요?

댓글 2

김김영삼1년 전

TTL이 설정되어 있어도 만료된 키는 접근할 때 삭제됩니다(lazy deletion). 능동적 정리가 필요합니다:

# 1. maxmemory-policy 설정 (redis.conf)
maxmemory 4gb
maxmemory-policy allkeys-lru # LRU 방식으로 오래된 키 제거

# 2. 큰 키 찾기
redis-cli --bigkeys

# 3. 메모리 상세 분석
redis-cli memory doctor
redis-cli memory stats

보통 원인은 TTL 없이 저장된 키가 쌓이는 것입니다. allkeys-lru 정책을 설정하면 메모리 한도 도달 시 자동으로 오래된 키를 제거합니다.

DDB담당자(guest)1년 전
완벽한 답변이에요. 감사합니다 👍
Ctrl+Enter로 등록