sql >> Databasteknik >  >> NoSQL >> Redis

Redis zrevrangebyscore, sortering annat än lexikografisk ordning

Poängen i en sorterad uppsättning stöder dubbla precisionsflyttal, så en bättre lösning skulle kanske vara att lagra redis-poängen som highscore.timestamp

t.ex. (pseudokod)

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

Detta skulle innebära att flera spelare som uppnått samma höga poäng också kommer att sorteras baserat på den tid de uppnådde den höga poängen enligt följande

För spelare 1...

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

För spelare 2...

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

Se den här frågan för mer information:Unika poäng för redis leaderboard



  1. Skillnad mellan att lagra heltal och strängar i Redis

  2. Hur undviker man Redis-samtal i Lua-skriptbegränsningar?

  3. MongoDB $log10

  4. Agentlös databasövervakning med ClusterControl