This organization was marked as archived by an administrator on Jan 2, 2026. It is no longer maintained.
Replies: 1 comment
-
|
레디스 캐싱도 좋은 방법이라고 생각합니다. 추가로 레디스 캐싱은 서버에서 해주고.. front가 웹 캐시를 적절히 써주면, 서버로의 요청 수도 감소할 수 있다고 생각합니다. |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
해결해야 할 상황
다양한 언론사로부터 기사(Article)를 주기적으로 수집 중
사용자가 피드를 열 때마다 실시간으로 DB에서 최신 기사를 조회하면 아래와 같은 문제점 발생
문제점
과도한 DB 조회
트래픽 급증 시 쿼리 병목으로 플랫폼 전체 성능 저하
정렬·페이징 오버헤드
최신순으로 정렬 후 페이징 처리 비용 증가
유저 경험 저하(첫 화면 로딩 시간이 길어져 이탈률 상승 가능성)
대안 제안: Redis 캐싱 전략
캐시 키 구조: latest:{publisherId}:{category}
값: 각 키당 최신 10개 기사
TTL: 5분 또는 10분 단위(운영 상황에 따라 조정)
갱신 방식:
스케줄 기반
Spring 스케줄러/Quartz에서 5분마다 각 (publisher,category) 조합을 다시 조회해 Redis 갱신
이벤트 기반(옵션)
새 기사 수집 시점에 해당 publisher·category 캐시를 즉시 업데이트(또는 삭제)
API 응답: 피드 조회 요청 시 Redis에서 바로 꺼내 반환 → DB 조회 최소화
기대 효과
응답 속도 개선: Redis 캐시 조회는 DB 대비 매우 빠름
DB 부하 감소: 정렬·페이징 쿼리 횟수 대폭 감소
유연한 TTL 조절: 트래픽 패턴에 맞춰 캐시 유효 기간 최적화
의논해야할 점
적절한 TTL(5분 vs 10분 vs 동적 결정)
캐시 무효화 전략: 스케줄 vs 이벤트 vs 혼합 방식
대용량 publisher/category 조합 증가 시 캐시 관리 방안
Redis 메모리 사용량 모니터링 및 오버플로우 대비
Beta Was this translation helpful? Give feedback.
All reactions