피드로 돌아가기
Cache Stale Data Issues
Dev.toDev.to
Backend

Redis 도입으로 잔액 불일치 티켓 90% 제거 및 데이터 원자성 확보

Cache Stale Data Issues

Lavkesh Dwivedi2026년 6월 18일3intermediate

Context

Go의 sync.Once 기반 In-memory Map을 활용한 저지연 잔액 조회 시스템 설계. Thread-safe 하지 않은 메모리 구조와 Write-through 보장 부재로 인해 동시성 업데이트 시 데이터 부정합 발생.

Technical Solution

  • Local Cache를 Redis Cluster로 대체하여 분산 환경 내 데이터 일관성 확보
  • Redis Lock Key 적용을 통한 잔액 업데이트 과정의 Atomicity 구현
  • TTL(Time-To-Live) 설정을 통한 메모리 효율화 및 오래된 데이터 자동 만료 처리
  • Message Queue 기반의 Invalidation Event Broadcast 시스템 구축으로 상위 소스 업데이트 즉각 반영
  • Redis 장애 대응을 위한 Circuit Breaker 패턴 도입으로 시스템 가용성 유지
  • Out-of-order 업데이트 시뮬레이션 Load Test 프로세스 정립을 통한 엣지 케이스 검증

1. In-memory 캐시 도입 시 Thread-safety 및 동시성 제어 전략 검토

2. 분산 환경에서 캐시 무효화(Invalidation)를 위한 이벤트 전파 메커니즘 설계

3. 성능 최적화 전 Write-through 및 Read-after-write 일관성 요구사항 정의

4. 단순 벤치마크가 아닌 실제 사용자 행태를 반영한 Race Condition 시뮬레이션 수행

원문 읽기