Redis®*: 技術驗證

此文件屬於即時排名用戶指南的一部分。請在此處查看完整指南:學習如何使用 Redis 即時為 200 萬用戶按分數排名

👋 歡迎來到 Stackhero 文件!

Stackhero 提供一個即用型的 Redis cloud 解決方案,帶來多項好處,包括:

  • 包含 Redis Commander 網頁介面
  • 無限制的訊息大小和傳輸。
  • 只需一鍵即可輕鬆進行 更新
  • 專用私有 VM 提供的最佳 效能 和強大 安全性

節省時間簡化生活:只需 5 分鐘 即可嘗試 Stackhero 的 Redis cloud hosting 解決方案!

Sorted sets 結合了鍵和分數。在我們的案例中,鍵是用戶 ID,分數代表用戶的積分。

我們開始在 Stackhero 上啟動 Redis 服務。該服務在 2 分鐘內即可啟動,提供最新穩定版本,按小時計費,並配有 Redis Commander,一個方便的網頁 GUI。我們使用此界面驗證了概念。

我們添加了三個用戶,示例 ID 和分數如下所示:

| 用戶名 | 分數 | | - | - | | userId1 | 11 | | userId2 | 54 | | userId3 | 24 |

這些用戶使用以下 Redis 命令被添加到一個名為 usersScores 的 sorted set 中:

ZADD usersScores 11 "userId1"
ZADD usersScores 54 "userId2"
ZADD usersScores 24 "userId3"

Redis Commander,Stackhero 提供的 Redis 實例網頁 GUIRedis Commander,Stackhero 提供的 Redis 實例網頁 GUI

接下來,我們檢索了 userId1 的分數:

ZSCORE usersScores "userId1"
> 11

這確認了 userId1 的分數確實是 11。之後,我們檢查了 userId1 的排名:

ZREVRANK usersScores "userId1"
> 2

請記住,排名從 0 開始。這意味著排名如下:

| 用戶名 | 分數 | 排名 | | - | - | - | | userId1 | 11 | 2 | | userId2 | 54 | 0 | | userId3 | 24 | 1 |

命令 ZREVRANK 返回了 2,這正是我們對 userId1 的預期。

您還可以獲取頂部條目。例如,要檢索前 2 名用戶(從排名 0 到排名 1),請運行:

ZREVRANGE usersScores 0 1 WITHSCORES
> 1) userId2
> 2) 54
> 3) userId3
> 4) 24

要獲取前 100 名用戶,只需運行:

ZREVRANGE usersScores 0 99 WITHSCORES

這種方法高效且非常適合高性能即時排名。