목록 보기
분산 시스템에서 로컬 캐시 활용하기
백엔드

분산 시스템에서 로컬 캐시 활용하기

카카오페이
카카오페이
2025년 1월 16일

두줄요약

분산 환경에서 로컬 캐시와 Redis Pub/Sub을 함께 사용해 조회 성능을 높이고 데이터 정합성을 맞추는 방법을 설명했습니다. 서버별 캐시 불일치와 오래된 데이터 문제를 줄이기 위한 설계와 구현 경험을 공유했습니다.

문제 상황

  • 분산 환경의 통신 중개 서비스에서 상품, 통신사, 혜택 같은 조회성 데이터 요청이 빈번한 상황
  • 매번 DB를 조회하면 비효율적이며, 로컬 캐시만 사용할 경우 서버 간 데이터 불일치 가능성 존재

원인 분석

  • Scale-Out 환경에서 서버별 로컬 캐시가 분리되어 데이터 공유 불가
  • 캐시된 가격·상품 정보가 변경되면 오래된 데이터 참조 위험 존재

해결 방법

  • 변경 빈도가 낮은 메타 정보는 로컬 캐시 우선 조회 구조로 처리
  • CacheManager와 sealed class로 로컬 캐시·Redis 캐시를 통합 관리
  • MongoDB 저장 시 Redis Pub/Sub 이벤트를 발행하고, 각 서버가 구독해 로컬 캐시 무효화

성능/운영 포인트

  • 로컬 캐시로 빠른 응답 속도와 DB 부하 감소 확보
  • Redis를 보조적으로 활용해 서버 간 최신화와 최종적 일관성 유지
  • 메시지 유실, 다단계 캐시, Write-Through, 캐시 크기 관리 같은 확장 전략 고려

다음 읽기

#Redis 주제를 다룬 다른 회사 글

Distributed Cache 도입기 (3): RDB 조회 90% 감소시키기

BillSetting 조회 부하를 줄이기 위해 로컬 캐시와 Redis 글로벌 캐시를 검토했지만 각각 한계가 있었습니다. 결국 Redis Pub/Sub 기반 분산 캐시로 전환해 RDB 조회를 93% 줄였습니다.

채널톡
채널톡
백엔드

댓글 0

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...