쓰기 전략

쓰기 전략은 데이터 최신성과 쓰기 지연 시간 사이 적절한 선택이 필요

Write-Back

어플리케션이 캐시에만 데이터를 씀, 이후 후처리를 통해 DB에 갱신

구조상 레디스가 중간에 다운되면 데이터는 소실됨을 염두해야 한다.

성능 지향

흐름

  1. 어플리케이션에서 레디스로 데이터 갱신
  2. 응답 반환
  3. 후처리로 DB에 갱신(방법은 여러개)

특징

  • 압도적인 쓰기 지연 시간(메모리 단에서 동작, DB I/O를 기다리지 않음)
  • DB 부하 감소
  • 데이터 유실 가능

Write-Around

DB에만 저장, 향후 조회 시 캐시 미스 발생으로 알아서 채워지도록 함

캐시 효율성 지향

흐름

  1. 어플리케이션이 DB에만 저장
  2. 캐시에 해당 데이터 제거
  3. 읽기 요청이 발생하면 캐시 미스로 레디스에 적재

특징

  • 데이터가 항상 최신(단일 원천)
  • 읽지 않는 데이터를 캐싱하지 않음
  • 저장한 데이터는 반드시 캐시 미스 발생

Write-Through

애플리케이션이 캐시와 데이터베이스(DB)를 동시에(동기적으로) 업데이트

데이터 일관성 지향

흐름

  1. 어플리케이션이 캐시와 DB에 동시에 저장
  2. 두 저장소 성공 시 최종 성공

특징

  • 데이터 정합성
  • 빠른 읽기
  • DB I/O 속도에 레디스 속도 쓰기 속도가 사실상 동기화 됨
  • 자주 쓰지 않는 데이터까지 캐

 

 

 

+ Recent posts