独特的得分为Redis的排行榜(Unique scoring for redis leaderboa

2019-08-17 11:30发布

我使用Redis的创建排行榜和试图找出一个很好的办法对付球员谁达到同样的高分(玩家用相同的高分应责令谁第一个实现了高比分)

我曾想过做以下的...

zadd leaderboard highscore.timestamp player_id.attempt_number

然而,当我做zrevrange时间戳显然将是不正确的顺序。

示例性输入:

zadd leaderboard 20.123 5.1
zadd leaderboard 20.125 5.2
zadd leaderboard 20.012 5.3
zadd leaderboard 21.024 5.4

输出:

zrevrange leaderboard 0 -1
5.4
5.2
5.1
5.3

所需的输出:

5.4
5.3
5.1
5.2

Answer 1:

一种选择是做zadd leaderboard highscore.(Long.MAX_VALUE - timestamp) player_id.attempt_number (其他城市Long.MAX_VALUE到什么是你的时间戳一个合理的最高可能值-签署的64位INT将存储大约300亿年来的毫秒,所以可能并不需要)

编辑:不要忘了添加前导零:)



文章来源: Unique scoring for redis leaderboard
标签: redis