Redis®*: 技术验证
本文件是实时排名用户指南的一部分。您可以在这里查看完整指南:学习如何使用 Redis 实时为 200 万用户按分数排名。
👋 欢迎来到 Stackhero 文档!
Stackhero 提供即开即用的 Redis cloud 解决方案,带来多项优势,包括:
- 集成
Redis Commander网页界面。- 无限制的消息大小与传输。
- 只需一键即可轻松完成更新。
- 依托专属私有基础设施,实现卓越性能与强大安全性。
节省时间,简化您的工作流程:只需 5 分钟即可体验 Stackhero 的 Redis cloud hosting 方案!
有序集合结合了键和分数。在我们的案例中,键是用户 ID,分数代表用户的积分。
我们首先启动了一个 Stackhero 上的 Redis 服务。该服务在 2 分钟内即可使用最新稳定版本上线,提供按小时计费,并配有 Redis Commander,一个方便的网页 GUI。我们使用此界面验证了概念。
我们添加了三个示例 ID 和分数的用户,如下所示:
| 用户名 | 分数 |
|---|---|
| userId1 | 11 |
| userId2 | 54 |
| userId3 | 24 |
这些用户通过以下 Redis 命令被添加到一个名为 usersScores 的有序集合中:
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
这种方法高效且非常适合高性能实时排名。