在Redis中存储高分/排行榜的游戏配置文件

时间:2017-02-09 06:56:29

标签: redis

嘿,我目前正在制作一款拥有超过100万用户的游戏,我有一段时间的排行榜,通过他们的杀戮/死亡/连杀以及更多使用MySQL来排名别人,但是做所有这些SQL调用并没有似乎很好,所以我开始玩Redis。

以下是我的选择。

例如,使用ZADD存储所有数据,然后全部抓取并使用ZRANGE和ZRANK查找等级

put player_kills player1 100
put player_deaths player_2 200

然而我遇到的问题是,例如,如果我只想超过10次击杀的玩家怎么办?我应该开始在哈希中存储用户数据并从那里排序吗?如果您有任何我可以使用的示例或想法,请告诉我。

2 个答案:

答案 0 :(得分:1)

要使用排序集数据结构,您需要调用Redis' ZADD command如下(不是分数在成员之前):

ZADD player_kills 100 player1

一旦您记录了所有杀戮,您可以使用ZRANGEBYSCORE command查询并在您的情况下:

ZRANGEBYSCORE player_kills 10 +inf

答案 1 :(得分:0)

如果您只想要超过10次击杀的玩家,请使用zrangebyscore,如下所示:

ZRANGEBYSCORE player_kills 10 20