Zrevrange- og Zrange -kommandoene er i stand til å hente medlemmer mellom et spesifisert utvalg av indekser av et sortert sett som er lagret på en gitt nøkkel. Disse kommandoene aksepterer både de positive og negative indeksverdiene når du spør om medlemmene i et gitt område. I denne guiden vil vi fokusere på Zrevrange -kommandoen og dens praktiske bruk.”
Redis Zrevrange Command
Zrevrange -kommandoen brukes til å spørre medlemmene mellom spesifiserte minimums- og maksimale indeksverdier for et sortert sett som er lagret på en gitt nøkkel. Medlemmene blir returnert i synkende rekkefølge basert på poengsummen. Hver gang de flere medlemmene har samme poengsum, vil elementene bli bestilt leksikografisk.
Syntaks
Zrevrange sorted_set_key start_index end_index [withscores]sorted_set_key: Dette er den unike IDen som identifiserer det sorterte settet i Redis Data Store
start_index: Startindeksen for området som er spesifisert
END_INDEX: Sluttindeksen for det spesifiserte området
[Withscores]: Dette er et valgfritt argument når spesifiserte medlemmer blir returnert med score.
Kommandoen vil returnere en rekke medlemmer som er lagret mellom det spesifiserte indeksområdet. Hvis Withscores Argumentet er spesifisert, poengsumene vil bli inkludert i utdataene.
Eksempel: Returner spillerne som har fullført flest antall nivåer i et online spill
La oss anta et online fellesskapsspill der hver spiller er rangert basert på antall fullførte nivåer. På slutten av hver uke får de tre beste spillerne bonusgaver. Derfor må vi spørre de tre beste spillerne som har fullført flest antall nivåer i spillet. Vi kan tilordne antall fullførte nivåer som poengsummen til et medlem som er lagret i et Redis -sortert sett.
Først vil vi legge til noen få spillere til et sortert sett som heter Gameleaderboard.
Zadd Gameleaderboard 4 Player: 1I eksemplet ovenfor, Spiller: 1 har fullført 4 nivåer, Spiller: 5 har fullført 10 nivåer, og så videre. Ovennevnte informasjon om en spiller er kartlagt til et sortert sett, som vist i det følgende.
La oss bruke Zrevrange -kommandoen til å spørre om alle medlemmene som har fullført nivået er høyere og går til toppen av listen.
Zrevrange gameleaderboard 0 4Som i illustrasjonen ovenfor, spredte de sorterte settindeksene seg fra 0 til 4. Derfor spesifiserte vi start- og sluttindeksene som henholdsvis 0 og 4, som ideelt sett skulle returnere alle medlemmene som tilhører det sorterte settet som er identifisert av nøkkelen Gameleaderboard as du kan se, det har bestilt medlemmene på en måte som de beste spillerne har flest antall fullførte nivåer i spillet.
Spørringsmedlemmer med score
Zrange -kommandoen kan brukes med Withscores valgfritt argument for å vise poengsumverdiene til hver spiller i eksemplet ovenfor.
Produksjon
Spørringsmedlemmer som starter fra slutten av det sorterte settet
I alle eksemplene ovenfor har vi brukt den 0-baserte indeksen som teller fra starten av det sorterte settet. Vi kan spesifisere indeksområdet fra slutten av det sorterte settet også. La oss si at vi trenger å spørre spillerne hvis score er de laveste ved hjelp av Zrevrange -kommandoen.
I dette tilfellet har sluttindeksen blitt spesifisert som -1, som betyr det siste elementet. Startindeksen er -3. Derfor vil det spørre medlemmer opp til det tredje medlemmet fra slutten av det sorterte settet. Dette er veldig tydelig hvis du bruker figuren ovenfor, som viser hvordan indeksene kan brukes på begge måter.
Zrange -kommandoen i stedet for Zrevrange
Zrevrange -kommandoen har blitt utdatert fra Redis versjon 6.2.0. Derfor anbefales det å bruke Zrange -kommandoen med det valgfrie Rev -argumentet, som oppfører seg det samme som Zrevrange -kommandoen.
Konklusjon
For å oppsummere, brukes Zrevrange -kommandoen til å spørre om medlemmer mellom et spesifisert minimums- og maksimumsindeks fra et Redis -sortert sett som er lagret på en gitt nøkkel. Den henter medlemmene som er lagret mellom de spesifiserte indeksverdiene i omvendt rekkefølge. Bortsett fra den omvendte bestillingen av medlemmene, oppfører denne kommandoen seg lik Zrange -kommandoen. Som nevnt ovenfor har den en logaritmisk tidskompleksitet som gjør kommandoen ganske rask å bruke i sanntidsapplikasjoner effektivt. Derfor er Zrevrange -kommandoen ideell å bruke når du trenger å hente elementer i synkende rekkefølge fra et sortert sett.