피드로 돌아가기
Dev.toBackend
원문 읽기
Redis 기반 Smart Caching으로 p95 Latency 2.3s에서 180ms로 단축
How We Cut API Response Time from 2.3s to 180ms Using Redis + Smart Caching
AI 요약
Context
Postgres의 복잡한 Join 및 Legacy PHP 서비스 호출로 인한 pricing quote API의 심각한 성능 저하 발생. p95 기준 2.3초의 응답 속도로 인해 사용자 경험 저하 및 시스템 병목 지점 형성.
Technical Solution
- Request Coalescing 기법을 통한 Cache Stampede 현상 방지 및 DB 부하 제어
- Redis 분산 락(Distributed Lock)을 활용하여 동일 키에 대한 중복 계산을 단일 요청으로 제한
- 입력 파라미터 전처리 및 정규화를 통한 Cache Key 설계 최적화로 데이터 중복 저장 방지
- 데이터 특성에 따른 Layered Caching 전략을 도입하여 재사용률 낮은 데이터는 In-process LRU Cache로 분리
- 쓰기-읽기 지연 시간이 500ms 미만이어야 하는 엔드포인트는 Cache-aside 패턴을 배제하여 데이터 정합성 확보
Impact
- p95 Latency 2.3s에서 180ms로 92% 이상 개선
- 동일 하드웨어 및 트래픽 환경에서 처리 효율 극대화
Key Takeaway
캐싱의 성패는 라이브러리 선택이 아닌, 정교한 Cache Key 설계와 Cache Stampede 같은 런타임 예외 상황에 대한 구조적 대응책 마련에 있음.
실천 포인트
- 캐시 만료 시점에 트래픽이 몰리는 Cache Stampede 가능성 검토 - 응답에 영향을 주는 모든 변수를 포함한 결정론적 Cache Key 생성 로직 검증 - 데이터 재사용률(Hit Rate)을 분석하여 Redis와 Local Cache의 적절한 배치 결정 - 데이터 정합성이 최우선인 Write-heavy 경로에서 캐시 배제 여부 판단