sql >> Database teknologi >  >> NoSQL >> Redis

Redis SortedSet:Hvordan får man værdier i numerisk rækkefølge frem for alfabetisk rækkefølge, når to værdier har samme score?

Når et sorteret sæts medlemmer har samme score, sorteres de leksikografisk. Der er ingen enkel måde at få dem ordnet anderledes AFAIK, men du kan nemt udføre sorteringen på kundens side. Alternativt kan du lave et kort Lua-script, der gør det for dig på serveren.

Der er en lidt hackisk måde, hvorpå du kan slippe afsted med det, du ønsker, uden at ty til ovenstående fremgangsmåder. Baseret på det eksempel, du havde givet, og hvis du antager, at både rang og bruger-id er heltal, kan du bruge score, der er en kombination af begge, som sådan:

zadd game_rank 550006435 6435
zadd game_rank 556088561 6088561
zadd game_rank 550608825 608825

Dette giver dig mulighed for at udføre områder og du får "numerisk" sortering for hver rang (dvs. med zrangebyscore game_rank 550000000 559999999 ).




  1. MongoDB Schema Planlægningstips

  2. Fordele og ulemper ved at bruge Selleri vs. RQ

  3. Hvorfor lua script blokere redis-server?

  4. MongoDB-serveren er ikke tilgængelig i lokalt netværk trods binding af ip