피드로 돌아가기
Dev.toBackend
원문 읽기
Redis 도입을 통한 응답 속도 1000배 개선 및 100K+ 동시 접속 처리
How Redis Caching Actually Works — A Visual Guide for Backend Developers
AI 요약
Context
PostgreSQL 기반 아키텍처에서 모든 요청이 DB를 직접 조회함에 따라 200-500ms의 높은 응답 지연 발생. 100K 이상의 동시 접속자가 몰리는 주식 거래 플랫폼 특성상 DB 부하 급증과 인프라 비용 상승이라는 한계에 직면함.
Technical Solution
- RAM 기반의 In-memory 데이터 스토어인 Redis를 도입하여 디스크 I/O 병목 지점을 제거한 아키텍처 설계
- Read-heavy 워크로드 최적화를 위해 Application이 캐시를 직접 제어하는 Cache-Aside 패턴을 기본 전략으로 채택
- 데이터 무결성과 신선도 유지를 위해 Write 시 DB 업데이트 후 해당 캐시 키를 즉시 삭제하는 Invalidation 로직 적용
- 메모리 자원 고갈 방지 및 데이터 최신성 보장을 위해 모든 캐시 키에 TTL(Time-To-Live) 설정 강제
- 쓰기 성능 극대화가 필요한 구간은 Write-Behind 패턴을 통해 DB 쓰기 지연을 비동기로 처리하는 구조 검토
- 캐시 미스 시 DB 부하가 집중되는 Cache Stampede 현상을 방지하기 위한 Mutex Lock 도입 제안
실천 포인트
- 읽기 비율이 80% 이상인 워크로드인지 확인 후 Cache-Aside 적용 - 모든 캐시 키에 적절한 TTL을 설정하여 좀비 데이터 발생 방지 - Redis 장애 시 시스템이 느려지더라도 동작할 수 있도록 Graceful Degradation 설계 적용 - Cache Hit Rate를 모니터링하여 80% 미만일 경우 캐싱 전략 및 키 설계 재검토