INVALIDATION

캐시 무효화는 “언제 stale을 끝낼지”의 선택이다

TTL만으로도 충분한 데이터가 있고, 쓰기 이벤트와 강하게 묶어야 하는 데이터가 있다. 운영 복구용 수동 삭제는 마지막 안전장치다.

TTL 만료

일정 시간이 지나면 자동으로 버린다. 구현은 쉽지만 변경 직후 stale window가 생긴다.

  • 상품 목록, 공지 목록처럼 약간 늦어도 되는 읽기
  • 원본 변경 이벤트를 받기 어려운 외부 API
기준: 변경 주기보다 짧은 TTL

이벤트 기반 삭제

쓰기 성공과 동시에 관련 key를 삭제한다. 정합성은 좋지만 key 설계와 이벤트 누락 대응이 필요하다.

  • 프로필, 권한, 재고처럼 변경 즉시 반영이 중요한 데이터
  • 여러 서버가 같은 Redis를 공유하는 구조
기준: 쓰기 경로에서 key 추적 가능

수동 복구 삭제

운영자가 특정 key나 namespace를 지운다. 자동 전략이 실패했을 때 좁은 범위로 복구해야 한다.

  • 배포 후 잘못 저장된 값 제거
  • 장애 대응 runbook에 포함된 제한적 삭제
기준: 전체 reset 대신 범위 삭제
판단
TTL
이벤트 삭제
수동 삭제
구현 난도
낮음
중간
낮음
정합성
TTL만큼 지연
가장 빠름
사후 복구
운영 위험
stale 누적
이벤트 누락
과도한 reset