4주5일차_리더보드와_Sorted_Set_실습
4주5일차_리더보드와_Sorted_Set_실습
필기 가자
*
1.3 리더보드 설계 시 고려사항
- 성능:
- 순위 계산과 조회가 빠르게 이루어져야 함.
- redis의
Sorted Set데이터 타입은 O(log(N))의 시간 복잡도로 빠른 점수 업데이트와 조회를 지원.
4. 리더보드 최적화 및 고급 활용
redis의 리더보드는 빠르고 효율적이지만 대규모 데이터나 복잡한 조건을 처리할 때 성능 저하나 메모리 관리 이슈가 발생할 수 있습니다. 이를 해결하기 위한 최적화 및 고급 활용 방법을 아래에 정리합니다.
4.1 많은 데이터 처리 시 성능 최적화
- pipeline 기능 활용으로 최적화 가능.
TTL 설정
- 설명:
- 오래된 데이터를 자동으로 삭제하여 메모리 사용량을 관리합니다.
- 예를 들어, 특정 이벤트 기간 동안만 유효한 리더보드를 설정할 수 있습니다. Batch 업데이트
특정 기간 리더보드
- 설명:
- 타임스탬프와 점수를 결합하여 기간별 데이터를 관리합니다.
- 예를 들어, 주간 리더보드, 월간 리더보드 구현이 가능합니다.
- 구현 방법:
5.1 실시간 순위 변동 처리
리더보드 시스템에서 점수는 지속적으로 업데이트됩니다. redis의 Sorted Set과 Pub/Sub 기능을 활용하면 실시간 점수 업데이트와 이벤트 기반 처리를 효율적으로 구현할 수 있습니다.
Action Plan
- 리더 보드 궁금한거 1개 해보기.
수업 내용 필기 정리.
- 상업적으로 쓸때는 ttl을 붙여야한다.
- 일주일이내 top5의 플레이어를 출력하고 싶다 ? -> ttl일 1주일로 두고, 점수를 저장하는 방식도 가능.
- 기사님이 수락 -> 내폰 : 지도창이 뜬다
- pubsub에 대한 설명
- pubsub은 순서 보장 X
- 즉시 이벤트 전달.
- 레디스 장애시 이벤트 소실
- 구독을 유지할 필요가 없다.
- 배달음식을 주문했다 -> 배달 알림 채널 구독 시작.
- 배달 완료 -> 배달알림 채널 구독 종료
- 그렇다면 클라이언트는 레디스(이벤트 브로커)랑 보통 어떻게 연결되나?
- 소켓서버를 통해서 연결함. 소켓서버에서 받아서 클라이언트에 전달하는 방식.
- 쓰레드 풀 : 쓰레드를 미리 풀에 생성해놓고 필요할때 가져다 쓰고 반납함.
- 요청 처리 쓰레드 풀, 서블릿쓰레드 풀
- db커넥션 풀 https://chatgpt.com/share/678a5b75-299c-8011-8cd6-d75607b9eece
This post is licensed under CC BY 4.0 by the author.