2025/11/19 2

Redis를 활용한 게시판 캐싱 전략

커뮤니티 게시판의 인기글 목록 조회 시 다음과 같은 비효율적인 부분이 있었습니다. 1. 반복적인 DB 조회 부담 : 자주 조회되는 실시간/주간/레전드 인기글 목록을 DB에서 조회하여 응답 시간이 증가했습니다. 2. 실시간 인기도 반영의 어려움: RDB만으로 글의 인기도를 실시간으로 반영하려면 요청마다 복잡한 인기글 재선정 로직이 필요했습니다. 따라서 자주 조회되는 요청은 캐싱을 하여 DB의 부담을 낮추고자 했습니다. 캐싱 요구 사항 1. TTL이 만료되어도 집계 쿼리가 재실행되면 안됩니다. 2. 실시간 인기글은 사용자 활동(조회, 댓글, 추천)에 따라 동적으로 변화합니다. 3. 글이 삭제되거나 수정되었을 때 사용자는 이전 버전의 글을 보면 안됩니다. 4. 자주 조회되고 변하지 않는 인기 게시글 목록은 통..

개발 2025.11.19

Redis 캐시 스탬피드 방어: 분산락의 성능 하락 원인 식별과 REP 전략 도입

글 수정 예정이 글의 원인과 결과 및 분석은 잘못되었습니다 조만간 수정할 예정입니다.서론https://jaeiktech.tistory.com/79 의 3번 분산락 부분에서 나타난 성능저하를 분석하는 글 입니다. 캐시 스탬피드를 발견하고 많은 스레드가 DB를 동시 접근 하는 것을 방지하기 위해 다양한 방식의 해결법을 적용하던 과정에서 분산락을 적용했을 때 심각한 성능저하가 나타나는 것을 발견했습니다. 락 대기와 동시성으로 인한 어느정도의 TPS와 Lantency의 하락은 예상했으나 너무 큰 폭으로 감소하였습니다.요약캐시최대 TPS평균 TPS평균 Latancy레디스 메모리커넥션 획득 시간비고캐시 적용59438468ms4.2MB최대 125ms스탬피드 발생분산락 적용345273322ms2.5MB최대 2.5ms응..