Redis
 sql >> Base de données >  >> NoSQL >> Redis

Redis zrevrangebyscore, tri autre que l'ordre lexicographique

Le score dans un ensemble trié prend en charge les nombres à virgule flottante à double précision, donc une meilleure solution serait peut-être de stocker le score Redis sous highscore.timestamp

par exemple. (pseudo-code)

highscore = 100
timestamp = now()
redis.zadd('myleaderboard', highscore + '.' + timestamp, playerId)

Cela signifierait que plusieurs joueurs ayant obtenu le même score élevé seront également triés en fonction du moment où ils ont atteint ce score élevé comme suit

Pour le joueur 1...

redis.zadd('myleaderboard', '100.1362345366', "Charles")

Pour le joueur 2...

redis.zadd('myleaderboard', '100.1362345399', "Babbage")

Consultez cette question pour plus de détails :Score unique pour le classement Redis