Redis®*: 技术验证

本文档属于实时排名用户指南的一部分。您可以在此处查看完整指南:学习如何使用Redis实时为200万用户按分数排名

👋 欢迎查阅 Stackhero 文档!

Stackhero 提供即开即用的 Redis cloud 解决方案,带来多项优势,包括:

  • 集成 Redis Commander Web 管理界面
  • 无限制的消息大小与传输。
  • 一键完成升级,操作便捷。
  • 基于专属私有基础设施,实现卓越性能与强大安全性

节省时间简化运维:仅需 5 分钟即可体验 Stackhero 的 Redis cloud 托管 方案!

有序集合结合了键和分数。在我们的案例中,键是用户ID,分数代表用户的积分。

我们首先启动了一个Stackhero上的Redis服务。该服务在2分钟内即可使用最新稳定版本上线,提供按小时计费,并配有Redis Commander,一个方便的Web GUI。我们使用此界面验证了概念。

我们添加了三个具有示例ID和分数的用户,如下所示:

用户名分数
userId111
userId254
userId324

这些用户通过以下Redis命令被添加到一个名为usersScores的有序集合中:

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

Redis Commander,Stackhero上提供的Redis实例的Web GUIRedis Commander,Stackhero上提供的Redis实例的Web GUI

接下来,我们检索了userId1的分数:

ZSCORE usersScores "userId1"
> 11

这确认了userId1的分数确实是11。之后,我们检查了userId1的排名:

ZREVRANK usersScores "userId1"
> 2

请记住,排名从0开始。这意味着排名如下:

用户名分数排名
userId1112
userId2540
userId3241

命令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

这种方法高效且非常适合高性能实时排名。