2015-01-16 29 views
0

在某个游戏中,用户保持得分。我如何在redis中保持这一点?我应该使用什么结构来获得最高分的用户

得分模式如下

u1, 1 
u2, 1 
u1, 1 
u3, 1 
u4, 1 
u5, 1 
u4, 1 
u4, 1 
u1, 1 
u4, 1 
u2, 1 

我希望Redis的回归,我被领导者每次我们在Redis的投入结构时希望结果自动分类。

u4, 4 
u1, 3 
u2, 2 
u3, 1 
u5, 1 

我该如何通过redis获取/放置/检索?

回答

1

要构建类似用户评分的内容,请使用排序集(也称为zset),它在数据旁边保留分数。 如果需要,您将能够按顺序或反向顺序检索用户。看到这里的命令的完整文档:http://redis.io/commands#sorted_set

+0

你能告诉我一组确切的命令,我应该使用和获取最终集合。 zset已弃用? – Rpj

+0

我仍然无法使用ZADD,ZRANGE命令进行排序。 – Rpj

+0

要将用户添加到排序集中,请使用如下命令:'zadd users 4 u1'。这将添加一个名为u1的项目(用户),并将分数4添加到zsetùsers'中。要检索用户分数从最高到最低,请执行以下操作:'zrevrange users 0 -1''这将以降序检索所有用户。如果你需要分数,并加入参数'WITHSCORES',就像这样:'zrevrange users 0 -1 WITHSCORES' – Exinferis

相关问题