sql >> Base de Datos >  >> NoSQL >> Redis

Redis zrevrangebyscore, clasificación diferente al orden lexicográfico

La puntuación en un conjunto ordenado admite números de punto flotante de doble precisión, por lo que posiblemente una mejor solución sería almacenar la puntuación de redis como puntuación más alta.marca de tiempo

p.ej. (pseudocódigo)

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

Esto significaría que varios jugadores que lograron el mismo puntaje alto también se ordenarán según el tiempo que lograron ese puntaje alto según lo siguiente

Para el jugador 1...

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

Para el jugador 2...

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

Consulte esta pregunta para obtener más detalles:Puntuación única para la tabla de clasificación de redis