zeze1004 / wedding-jira-backend

결혼 준비 하기 싫어서 만든 결혼 준비 프로젝트
https://dev.wedding-jira.com/swagger-ui/index.html
MIT License
40 stars 2 forks source link

캐시 사용 로직 구상하기 #10

Closed zeze1004 closed 3 months ago

zeze1004 commented 8 months ago

🖊️ Description

카드 조회 및 수정 캐싱 전략을 고민한다.

📗 Etc

[ 고민 내역 ]

  1. Encache를 읽기 전용 캐시로 사용
    • 초기 메인 화면 로드 시 모든 카드 데이터를 Encache에서 읽음
    • Encache는 데이터베이스에서 데이터를 주기적으로 동기화
  2. Redis를 변경 로그 저장소로 활용
    • 카드 상태 변경 시 변경 내용을 Redis에 로그 형태로 저장
    • ex. Redis List나 Stream 데이터 구조
  3. 백그라운드 프로세스 구현
    • 백그라운드 프로세스에서 Redis의 변경 로그를 모니터링
    • 변경 로그를 처리하여 데이터베이스에 업데이트 쿼리보냄
    • Encache의 관련 캐시 항목을 무효화
  4. Encache 무효화 전략 구현 필요
    • 백그라운드 프로세스에서 데이터베이스 업데이트 후 관련된 Encache 항목을 무효화
    • Encache는 무효화된 항목에 대해 다음 읽기 요청 시 데이터베이스에서 데이터를 다시 로드

[ 장점 ]

[ 단점 ]