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 實例網頁 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
這種方法高效且非常適合高性能即時排名。