Redis
 sql >> Base de Dados >  >> NoSQL >> Redis

Redis zrevrangebyscore, classificação diferente da ordem lexicográfica


A pontuação em um conjunto classificado suporta números de ponto flutuante de precisão dupla, portanto, possivelmente, uma solução melhor seria armazenar a pontuação redis como highscore.timestamp

por exemplo. (pseudo-código)
highscore = 100
timestamp = now()
redis.zadd('myleaderboard', highscore + '.' + timestamp, playerId)

Isso significaria que vários jogadores que alcançaram a mesma pontuação alta também serão classificados com base no tempo em que alcançaram essa pontuação alta, conforme o seguinte

Para o jogador 1...
redis.zadd('myleaderboard', '100.1362345366', "Charles")

Para o jogador 2...
redis.zadd('myleaderboard', '100.1362345399', "Babbage")

Veja esta pergunta para mais detalhes:Pontuação exclusiva para placar redis