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