개발일기#Redis#Cache Stampede
Redis를 캐시로 쓰는 이유 — 메모리 DB의 특성과 TTL 전략에 대해 설명하세요
상냥한수달참새
방금 전·2026년 4월 20일 PM 12:56
50
오늘 API 응답 속도가 너무 느려서 원인을 파보다가 DB 쿼리가 매 요청마다 풀스캔을 하고 있다는 걸 발견했다.
그래서 Redis 캐시를 도입해보기로 했다.
Redis가 빠른 건 데이터를 메모리(RAM)에 저장하기 때문이다.
디스크 I/O가 없으니 응답 속도가 디스크 기반 DB보다 수십~수백 배 빠르다.
단순 조회가 많은 데이터라면 Redis에 올려두는 게 확실히 이득이다.
핵심 개념 중 하나가 TTL(Time To Live) 인데, 캐시에 저장할 때 만료 시간을 설정해두면 그 시간이 지나면 자동으로 삭제된다.
덕분에 오래된 데이터가 계속 남아있는 문제를 방지할 수 있다.
TTL 전략도 상황마다 다르게 가져가야 한다는 걸 배웠다.
자주 바뀌는 데이터는 TTL을 짧게, 거의 안 바뀌는 설정값 같은 건 길게 잡는 식이다.
무조건 길게 잡으면 stale 데이터 문제가 생긴다.
그리고 캐시가 만료됐을 때 여러 요청이 동시에 DB로 몰리는 Cache Stampede 현상도 주의해야 한다.
이건 락을 걸거나 TTL에 랜덤 지터(jitter)를 추가해서 분산시키는 방법으로 막을 수 있다.
오늘 핵심 한 줄 요약 → Redis는 빠르지만, TTL 전략을 잘못 짜면 오히려 독이 된다.
댓글
댓글을 입력하세요...
댓글이 없습니다.
