유명 연예인의 한정판 굿즈 판매가 시작되는 순간, 수십만 명의 사용자가 동시에 접속합니다. 이때 Redis에 저장된 상품 재고 데이터의 만료 시간이 하필 지금 끝난다면 어떤 일이 벌어질까요? 모든 요청이 한꺼번에 데이터베이스(DB)로 몰리며 서버가 마비되는 '캐시 스탬피드(Cache Stampede)' 현상이 발생합니다. 이 글에서는 수…
이커머스 타임 세일 프로젝트를 진행하던 중, 오전 10시 정각마다 DB CPU가 100%를 치며 서버가 응답 불능(Hang) 상태 에 빠지는 현상을 겪었습니다. 로그를 분석해보니 특정 인기 상품의 캐시 만료 시점(TTL Expiry)과 정확히 일치했습니다. 수천 개의 요청이 동시에 만료된 키를 조회하려 했고, 캐시가 비어있음을 확인한 모든 요청이 동시…