Skip to content

Redis Sorted Set으로 기존 DB 페이징 기반 랭킹 시스템 개선

김승진 edited this page Mar 18, 2024 · 1 revision

문제 상황 & 접근

  • DB 페이징 쿼리 기반으로 랭킹을 조회하는데 있어 성능이 좋지 못함

오프셋 기반 페이징이라 데이터가 많아질 수록 느려지기에 Redis를 통해 랭킹 시스템을 구축하고자 결정

적용

기존 쿼리

image

Redis의 Sorted Set 활용

image

  • redisTemplate의 ZSet에 조회를 수행한다.
  • 기타 정보들은 Json 형태로 저장되어 조회할때 읽어오도록 구현하였다.

결론

  • DB에 5만 건의 row를 삽입한 이후 부하테스트를 통해 평균 Latency를 확인하였다.

DB Paging Query [120.44ms]

image

Redis Sorted Set [26.26ms 4.58배 개선]

image