issues
search
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
[ 고민 내역 ]
Encache를 읽기 전용 캐시로 사용
초기 메인 화면 로드 시 모든 카드 데이터를 Encache에서 읽음
Encache는 데이터베이스에서 데이터를 주기적으로 동기화
Redis를 변경 로그 저장소로 활용
카드 상태 변경 시 변경 내용을 Redis에 로그 형태로 저장
ex. Redis List나 Stream 데이터 구조
백그라운드 프로세스 구현
백그라운드 프로세스에서 Redis의 변경 로그를 모니터링
변경 로그를 처리하여 데이터베이스에 업데이트 쿼리보냄
Encache의 관련 캐시 항목을 무효화
Encache 무효화 전략 구현 필요
백그라운드 프로세스에서 데이터베이스 업데이트 후 관련된 Encache 항목을 무효화
Encache는 무효화된 항목에 대해 다음 읽기 요청 시 데이터베이스에서 데이터를 다시 로드
[ 장점 ]
초기 메인 화면 로드 시 데이터베이스 부하 감소: Encache에서 데이터를 읽어오므로 데이터베이스 부하가 줄어듬
카드 상태 변경 시 즉시 응답 가능: 변경 내용은 Redis에 로그만 남기므로 클라이언트에 대한 응답 시간이 빨라짐
데이터베이스 업데이트 부하 분산: 백그라운드 작업자 프로세스에서 배치 처리하므로 데이터베이스 부하 분산
Encache 무효화를 통한 데이터 일관성 유지: 데이터베이스 업데이트 후 Encache를 무효화하여 데이터 일관성을 유지
[ 단점 ]
구현 난이도가 높음
별도의 모니터링 필요
🖊️ Description
카드 조회 및 수정 캐싱 전략을 고민한다.
📗 Etc
[ 고민 내역 ]
[ 장점 ]
[ 단점 ]