본문 바로가기
Q&A해결2026년 2월 12일1분 읽기

Redis 메모리가 계속 증가합니다

서
서버운영
조회 409댓글 3
Redis를 세션 저장소 + 캐시용으로 사용 중인데, 메모리 사용량이 계속 증가해서 이미 할당된 4GB 중 3.8GB를 사용 중입니다. TTL 설정을 안 한 키가 있는 건지, 아니면 메모리 단편화 문제인지 판단이 안 됩니다. redis-cli info memory 결과에서 mem_fragmentation_ratio가 1.8 정도로 나오는데 이게 높은 건가요? Redis 6.2, maxmemory 4gb, maxmemory-policy allkeys-lru로 설정되어 있습니다.

댓글 3

김김영삼8개월 전
fragmentation ratio 1.8은 꽤 높은 편입니다. 1.0~1.5가 정상 범위이고, 1.5 이상이면 메모리 단편화가 심한 겁니다.

```bash
# TTL 없는 키 찾기
redis-cli --scan --pattern '*' | while read key; do
ttl=$(redis-cli ttl "$key")
if [ "$ttl" = "-1" ]; then echo "$key"; fi
done

# 메모리 사용 상위 키 확인
redis-cli --bigkeys

# 단편화 해소 (Redis 4.0+)
redis-cli memory doctor
redis-cli config set activedefrag yes
```

TTL 없는 키가 많으면 그게 원인입니다. 세션에는 반드시 TTL을 설정하고, 캐시 키도 적절한 만료 시간을 주세요. activedefrag를 켜면 단편화도 점진적으로 해소됩니다.
코코딩하는민수8개월 전
저도 비슷한 경험이 있는데, 세션 저장소로 쓸 때 connect-redis에서 TTL 설정을 빠뜨리면 세션 키가 영구적으로 남아요. 세션 설정 부분도 같이 확인해보세요.
서서버운영(guest)8개월 전
TTL 없는 키가 12만 개나 있었네요... 세션 TTL 설정 누락이 원인이었습니다. 정리하고 activedefrag도 켰더니 2.1GB로 줄었습니다. 감사합니다!
Ctrl+Enter로 등록