Redis Zrank

Redis Zrank
Redis sorterte sett kan holde en samling strenger der hver kalles et sett medlem. Hvert medlem er assosiert med en rangering og scoreverdi. Rang er indeksen for et bestemt medlem i det sorterte settet som er lagret på en gitt nøkkel. Poengverdien brukes til å bestille de faste medlemmene fra lavest til høyest poengsum verdi. Derfor vil et medlem med lavest poengsum bli tilordnet en indeks på 0. Disse egenskapene lar sorterte sett gjøre mye flere oppgaver med høy ytelse.

Ulike kommandoer er tilgjengelige for å operere på sorterte sett. Noen ganger må du kjenne indeksen eller rangering av et medlem i Redis -sortert sett som er lagret på en gitt nøkkel. Zrank er den ideelle kommandoen å bruke, som vil bli diskutert i følgende avsnitt.

Zrank -kommandoen

Nå har du en ide om hvordan indeksverdien er tildelt hvert medlem i et sortert sett. Zrank -kommandoen oppnår rang som et spesifisert medlem med lineær tidskompleksitet. Følgende er syntaks for Zrank -kommandoen:

Zrank sorted_set_key -medlem

sorted_set_key: Nøkkelen til det sorterte settet som medlemmet tilhører.

medlem: Navnet på medlemmet du trenger for å få rang.

Denne kommandoen returnerer rang eller indeks for det spesifiserte medlemmet som en heltallverdi hvis medlemmet eksisterer i det sorterte settet. Hver gang det spesifiserte medlemmet eller sorterte set -tasten ikke eksisterer, returnerer Zrank -kommandoen en strengverdi nil.

Sak 01: Få spillposisjonen til en spiller

La oss anta at vi fikk et online spill -toppliste implementert ved hjelp av Redis sorterte sett. Nå vil vi vise hver spillers rang når de logger seg på brukerprofilen sin.

La oss først lage en dummy toppliste, OnlineGameleaderboard, og legg spillere til det ved hjelp av Zadd -kommandoen.

Zadd OnlineGameleaderboard 3000 "Jack" 1200 "Mary" 1000 "Rikaz" 5000 "Noel"

Deretter vil vi ringe Zrange -kommandoen for å sjekke om medlemmene er lagt til riktig.

Zrange OnlineGameleaderboard 0 10 Withscores

Produksjon:

Som forventet har medlemmene blitt sortert i stigende rekkefølge etter poengsumverdiene. La oss si at vi må skaffe hvert av disse medlemmers rekker. Zrank kan brukes som følgende:

Zrank OnlineGameleaderboard Rikaz
Zrank OnlineGameleaderboard Mary
Zrank OnlineGameleaderboard Jack
Zrank OnlineGameleaderboard Noel

Produksjon:

Som forventet har rangering returnert for hvert medlem der medlemmet “Rikaz” har den laveste rangering på 0. I tillegg fikk medlemmet “Noel” den høyeste rangering av 3.

La oss sjekke hvordan kommandoen oppfører seg hvis du spesifiserer et ikke-eksisterende medlem i følgende kommando:

Zrank OnlineGameleaderboard Martin

Medlemmet som vi har spesifisert er ikke i det sorterte settet. Derfor returnerte den strengen nil.

Deretter vil vi sjekke følgende kommando for den ikke-eksisterende nøkkelen:

Zrank None -ExistingKey Martin

Returverdien er igjen null.

Zrank -kommandoen støtter ikke flere medlemmer som argumenter. Derfor, hvis du gir flere medlemmer, vil det kaste en feil. Zrank -kommandoen anbefales å bruke når du trenger å oppnå indeksverdien til et sortert sett -medlem.

Kort sagt, Redis sorterte sett kan holde strengverdier som heter medlemmer. Hvert av disse medlemmene er assosiert med to egenskaper: score og rangering. Som diskutert er rangering basert på 0 og økt av ett per medlem. Vanligvis bestilles Redis sorterte sett med medlemmer av deres score i stigende rekkefølge. Derfor vil medlemmet med lavest poengsum bli tildelt 0th -indeksen.

Konklusjon

Denne artikkelen diskuterte hvordan Zrank -kommandoen lar deg få denne indeksverdien for et gitt medlem i det sorterte settet som er lagret på en gitt tast. Det er viktig å merke seg at Zrank -kommandoen fungerer med lineær tidskompleksitet.