排序集中的分数支持双精度浮点数,因此可能更好的解决方案是将redis分数存储为highscore.timestamp
例如(伪代码)
highscore = 100
timestamp = Now()
redis.zadd('myleaderboard', highscore + '.' + timestamp, playerId)
这意味着获得相同高分的多个玩家也将根据其获得高分的时间进行排序,如下所示:
对于玩家1 …
redis.zadd('myleaderboard', '100.1362345366', "Charles")
对于玩家2 …
redis.zadd('myleaderboard', '100.1362345399', "Babbage")