使用Redis可获得不同级别的不同排行榜



我是Redis的新手,我正在尝试为游戏中的不同级别创建排行榜(例如,游戏可能有20个级别,我想创建20个不同的排行榜(。

阅读AWS的文档,排序集似乎是可行的,但我需要创建20个不同的弹性缓存实例吗?

或者我会做一些类似ZADD排行榜的事情:1,ZADD:排行榜:2,其中1或2对应于游戏的id?

如果这是一个愚蠢的问题,我深表歉意,因为这是我第一次尝试Redis。

您不需要创建20个不同的ElastiCache实例,只需使用一个即可(您需要根据大小、网络等决定实例类型(。

每当您需要将新用户添加到某个级别(如果他存在,则更新分数(时,您需要使用该级别的密钥、用户和分数(域中的分数(执行zadd。zadd还支持同时设置多个用户分数。

> ZADD leaderboard:1 154 "user273"
(integer) 1
> ZADD leaderboard:2 12 "user786"
(integer) 1
> ZADD leaderboard:3 221 "user:6817" 912 "user:21233"
(integer) 2

user:12315的分数进入排行榜,然后他获得19时,当你执行zadd时,他的分数(分(将被覆盖。

你会有一个排序的集合,里面有很多独特的用户及其相应的分数。这里的棘手部分;如果你要获得前5名用户,那么你需要使用zrevrange而不是zrange,因为当你的分数更高时,你的排名会更小(数字顺序(。在这种情况下

zrevrange leaderboard:1 0 4 withscores

将为您提供级别1的前5名用户。withscores是可选的。

相关内容

  • 没有找到相关文章

最新更新