콘텐츠로 이동

캐시와 인메모리 데이터베이스

문서 기준: 2026년 8월

데이터베이스 조회는 디스크 I/O가 발생하여 수 ms–수십 ms가 걸립니다. 인메모리 캐시는 자주 조회되는 데이터를 메모리에 저장하여 응답 시간을 마이크로초 단위로 줄입니다.

패턴 동작 적합한 경우
Cache-Aside 앱이 캐시 확인 → 미스 시 DB 조회 → 캐시 저장 읽기 중심, 가장 일반적
Write-Through 앱이 캐시에 쓰기 → 캐시가 DB에 동기 쓰기 일관성 중요, 쓰기 지연 허용
Write-Behind 앱이 캐시에 쓰기 → 캐시가 비동기로 DB에 쓰기 쓰기 성능 중요, 일시적 불일치 허용
Read-Through 캐시가 DB 조회를 대행 캐시 라이브러리가 DB 연동 지원 시
벤더 서비스 엔진 특징
AWS ElastiCache for Valkey Valkey (Redis 포크) 기본 권장. Serverless 옵션. 벡터 검색 지원
AWS ElastiCache for Redis Redis 기존 워크로드 호환용
AWS MemoryDB for Valkey Valkey 내구성 보장 (디스크 영속). 프라이머리 DB로 사용 가능
Azure Azure Cache for Redis Redis Enterprise 티어 (Redis Enterprise 기반)
Google Cloud Memorystore for Valkey Valkey 기본 권장. Cluster 모드, 자동 장애 조치
Google Cloud Memorystore for Redis Redis 기존 호환용
OCI OCI Cache Redis 호환 관리형 Redis 클러스터
항목 Valkey/Redis Memcached
데이터 구조 String, Hash, List, Set, Sorted Set, Stream String만 (key-value)
영속성 RDB/AOF 스냅샷 가능 없음 (순수 캐시)
복제/HA 리플리카 + 자동 장애 조치 없음 (클라이언트 샤딩)
Pub/Sub 지원 미지원
적합한 경우 세션 스토어, 리더보드, 실시간 분석, Pub/Sub 단순 캐시, 대용량 객체 캐싱
요구사항 권장
DB 읽기 부하 분산 (일반 캐시) ElastiCache/Memorystore Valkey (또는 Redis) (Cache-Aside)
세션 스토어 (TTL + 구조화 데이터) Valkey / Redis (Hash 타입)
프라이머리 DB 대체 (내구성 필요) MemoryDB for Valkey
단순 key-value, 최대 처리량 Memcached
실시간 리더보드/카운터 Valkey / Redis (Sorted Set)
  • 캐시를 영구 저장소처럼 사용 — 캐시는 언제든 사라질 수 있습니다. 원본 데이터 없이 캐시에만 저장하면 장애 시 데이터가 유실됩니다.
  • 모든 키에 TTL을 설정하지 않음 — TTL 없이 캐시하면 데이터가 영원히 남아 DB와 불일치가 발생하고 메모리가 고갈됩니다.
  • 캐시 장애 시 fallback을 구현하지 않음 — 캐시 의존 아키텍처에서 캐시가 죽으면 서비스 전체가 중단됩니다. 캐시 미스 시 DB 직접 조회 경로를 반드시 확보하세요.
  • 모든 캐시 키에 비즈니스 요건에 맞는 TTL이 설정되어 있는가
  • 캐시 장애 시 DB 직접 조회로 fallback하는 경로가 구현되어 있는가
  • 캐시 메모리 사용량 모니터링과 eviction 정책(LRU/LFU)을 확인했는가