핵심 데이터게임

실시간 리더보드

게임, 스포츠, 소셜 앱을 위한 실시간 순위표로, 점수 갱신과 읽기가 병렬로 실행됩니다.

쓰기 시 정렬
항상
상위 10위를 위한 명령
1
플레이어 순위를 위한 명령
1
단계 1 / 5
점수 기록

경기가 끝나고 결과가 기록됩니다.

예시 세션playing
# 점수 기록
hotkv> ZADD board:2026-w42 1500 alice
(integer) 1

실제 HotKV 명령과 예시 응답으로 구성된 애니메이션 안내입니다. 원하는 단계를 클릭하면 해당 단계로 이동합니다. 명령과 응답은 HotKV에서 입력하고 보는 그대로 영어로 표시됩니다.

문제

리더보드는 끊임없이 쓰이고 끊임없이 읽힙니다. 점수가 바뀔 때마다 순위표가 다시 정렬될 수 있고, 모든 플레이어는 자기 순위를 즉시 보기를 기대합니다. 트래픽이 늘면 관계형 데이터베이스에서 순위를 다시 계산하는 방식은 버티지 못합니다.

HotKV의 해결 방식

정렬 집합은 쓰는 시점에 멤버를 점수순으로 유지하므로, 순위표 상위권과 모든 플레이어의 순위를 언제든 바로 읽을 수 있습니다. HotKV는 여러 워커 스레드에서 명령을 실행하므로 점수 갱신과 읽기가 하나의 스레드로 몰리지 않습니다.

단계별 설명

명령 하나하나, 무슨 일이 일어나는가

  1. 01

    점수 기록

    경기가 끝나고 결과가 기록됩니다.

    ZADD board:2026-w42 1500 alice
  2. 02

    점수 더하기

    Bob이 한 라운드를 이깁니다. 점수가 오르고 순위가 즉시 갱신됩니다.

    ZINCRBY board:2026-w42 250 bob
  3. 03

    상위 10위 표시

    쓰기가 계속되는 동안 모든 클라이언트와 방송 오버레이가 선두권을 읽습니다.

    ZREVRANGE board:2026-w42 0 9 WITHSCORES
  4. 04

    내 순위는?

    각 플레이어가 자신의 위치를 확인합니다.

    ZREVRANK board:2026-w42 alice
  5. 05

    작업 없이 주간 초기화

    주마다 자체 키가 있으며 2주 후 만료됩니다.

    EXPIRE board:2026-w42 1209600
적용 분야

실제 시나리오

모바일 및 콘솔 게임

전체, 지역, 친구 전용 순위표가 각각 별도의 정렬 집합이며, 경기가 끝날 때마다 갱신됩니다.

피트니스와 학습 앱

주간 연속 기록과 포인트 순위는 매주 새 키로 바꾸는 것만으로 스스로 초기화됩니다.

라이브 이벤트와 e스포츠

방송 오버레이가 결과가 스트리밍되는 동안 매초 순위를 읽습니다.

내장 기능

제공되는 기능

항상 정렬된 순위

실행할 순위 계산 작업이 없습니다. 점수가 들어오는 대로 순서가 유지됩니다.

ZADDZINCRBY

상위 목록과 플레이어 순위

각각 명령 하나입니다.

ZREVRANGEZREVRANK

다수의 워커 스레드

점수 갱신과 읽기가 하나가 아닌 여러 워커 스레드에 분산됩니다.

기간별 순위표

기간마다 만료가 있는 키 하나를 둡니다.

EXPIRE

자주 묻는 질문

일간 또는 주간 리더보드는 어떻게 만듭니까?

board:2026-w42처럼 기간마다 정렬 집합 하나를 쓰고 만료를 설정합니다.

순위표를 합칠 수 있습니까?

예. ZUNIONSTORE로 여러 순위표를 하나로 합칠 수 있습니다. 예를 들어 주간 순위표 네 개로 월간 순위표를 만듭니다.

쓰기가 많으면 읽기가 느려집니까?

HotKV는 여러 워커 스레드에서 명령을 실행하므로 점수 갱신과 읽기가 하나의 스레드를 거치도록 강제되지 않습니다.

관련 사용 사례

직접 워크로드로 사용해 보십시오

HotKV는 Redis 프로토콜을 사용하므로 기존 클라이언트를 연결해 같은 명령을 그대로 실행할 수 있습니다.