核心資料遊戲

即時排行榜

適用於遊戲、運動與社群應用的即時排名,分數更新與讀取平行進行。

寫入時即排序
隨時
個指令取得前 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

    不需工作排程的每週重置

    每週有自己的鍵,並在兩週後到期。

    EXPIRE board:2026-w42 1209600
適用之處

真實世界的情境

手機與主機遊戲

全球、區域與僅限好友的榜單是各自獨立的有序集合,每場對戰後更新。

健身與學習應用

每週的連續紀錄與積分排名,透過每週切換到新的鍵來自行重置。

現場活動與電競

轉播的疊加畫面在結果持續湧入時,每秒讀取一次排名。

內建

您能獲得什麼

隨時有序的排名

不需要執行任何排名作業。順序在分數到來時就維持好了。

ZADDZINCRBY

前幾名清單與玩家名次

各用一個指令即可取得。

ZREVRANGEZREVRANK

多個工作執行緒

分數更新與讀取分散到多個工作執行緒,而不是只靠一個。

週期性榜單

每個週期一個鍵,並設定到期時間。

EXPIRE

常見問題

如何建立每日或每週的排行榜?

每個週期使用一個有序集合,例如 board:2026-w42,並為它設定到期時間。

可以合併榜單嗎?

可以。ZUNIONSTORE 會把多份榜單加總成一份,例如由四份週榜組成一份月榜。

大量寫入會拖慢讀取嗎?

HotKV 在多個工作執行緒上執行指令,因此分數更新與讀取不會被迫擠進同一個執行緒。

相關使用情境

在您自己的工作負載上試試看

HotKV 支援 Redis 協定,因此您可以將現有的用戶端指向它,並執行這些相同的指令。