Poengverdien gjør at de kan sorteres i en bestemt rekkefølge. Hvert medlem av et sortert sett må være unikt, men kan dele en scoreverdi med flere medlemmer.
I denne opplæringen lærer du alt om de sorterte settene i Redis og hvordan du kan bruke dem i databasene dine.
Forsikre deg om at du har en eksisterende Redis -server installert og kjører for å følge denne opplæringen.
Opprette sorterte sett
For å lage et sortert sett i Redis, bruk Zadd -kommandoen i Redis CLI. Zadd -kommandoen tar tre hovedargumenter.
Den første er navnet på nøkkelen som holder det sorterte settet.
Det andre argumentet holder medlemmets poengsum som blir lagt til det sorterte settet.
Det endelige og tredje argumentet er den faktiske verdien av medlemmet i det sorterte settet.
Merk: Rekkefølgen på argumentene betyr noe som hver representerer verdiene som diktert ovenfor.
Ta en titt på eksemplet vist nedenfor.
127.0.0.1: 6379> Zadd Captain 1 "Jonathan Archer"
Kommandoen over oppretter et sortert sett som inneholder navnene på Star Trek -kapteiner. I eksemplet over har verdien av "Jonathan Archer" en poengsum på 1.
Kommandoen returnerer en heltallverdi som indikerer det totale antall medlemmer som er lagt til det sorterte settet.
Redis begrenser deg ikke til å legge til et enkelt medlem til settet. Du kan legge til flere verdier. For eksempel:
Zadd Captain 2 "Carol Freeman" 4 "Christopher Pike" 1 "Jean-Luc Picard" 3 "Kathryn Janeway.""
Du vil merke to hoved ting i kommandoen over:
ZADD -kommandoalternativer.
ZADD -kommandoen godtar flere alternativer for å endre sin oppførsel og funksjonalitet. Disse alternativene inkluderer:
Merk: NX- og XX -alternativene er motstridende. Derfor kan du bare bruke ett alternativ i en enkelt kommando.
Merk: Bruke Zincrby -kommandoen i stedet for Zadd med Incr -alternativet anbefales. De utfører begge den samme funksjonen.
Hente medlemmer fra et sortert sett
For å hente medlemmer av et sortert sett i Redis, bruk Zrange -kommandoen. Kommandoen tar navnet på nøkkelen og et bestemt utvalg av medlemmene du vil hente. Områdeverdiene til det sorterte settets medlemmer er nullbaserte indekser. Derfor er det første medlemmet i settet på indeks 0.
For eksempel, for å hente medlemmene fra indeks 0 til 10, angi kommandoen:
127.0.0.1: 6379> Zrange Captain 0 10
Kommandoen vil returnere medlemmene innenfor det angitte området. Eksempelutgang er som vist nedenfor:
1) "Jonathan Archer"
2) "Carol Freeman"
3) "Kathryn Janeway"
4) "Christopher Pike"
5) "Jean-Luc Picard"
I tilfellene der det sorterte settet inneholder medlemmer med en lignende scoreverdi, vil medlemmene bli sortert i leksikografisk rekkefølge.
Hvis du vil få medlemmene i settet og tilhørende score, kan du bruke alternativet Withscores.
127.0.0.1: 6379> Zrange Captain 0 10 Withscores
Eksempelutgangen fra kommandoen over er som vist.
1) "Jonathan Archer"
2) "1"
3) "Carol Freeman"
4) "2"
5) "Kathryn Janeway"
6) "3"
7) "Christopher Pike"
8) "4"
9) "Jean-Luc Picard"
10) "5"
Anta at du vil få medlemmene i omvendt rekkefølge. Husk at Zrange -kommandoen bare returnerer medlemmene i stigende rekkefølge. For å få omvendt ordre, bruk Zrevrange -kommandoen.
127.0.0.1: 6379> Zrevrange kapteiner 0 10
Kommandoen vil resultere i omvendt ordre.
1) "Jean-Luc Picard"
2) "Christopher Pike"
3) "Kathryn Janeway"
4) "Carol Freeman"
5) "Jonathan Archer"
Du kan også inkludere alternativet WithOptions i Zrevrange -kommandoen.
1) "Jean-Luc Picard"
2) "5"
3) "Christopher Pike"
4) "4"
5) "Kathryn Janeway"
6) "3"
7) "Carol Freeman"
8) "2"
9) "Jonathan Archer"
10) "1"
Den resulterende verdien vil inneholde score i omvendt rekkefølge.
Fjern medlemmer fra et sortert sett
For å fjerne medlemmer fra et sortert sett, bruk ZREM -kommandoen.
127.0.0.1: 6379> Zrem -kapteiner "Jonathan Archer"
Kommandoen vil returnere en heltallverdi som viser antall elementer fjernet fra det sorterte settet.
For å fjerne elementer etter rekkevidde, bruk Zrembyrange -kommandoen.
127.0.0.1: 6379> Zremrangebylex -kapteiner [A [Z
Kommandoen vil fjerne verdiene basert på deres Lexico -serie.
For å fjerne medlemmene på poengsummen, bruk ZremrangeByscore -kommandoen.
127.0.0.1: 6379> ZremRangeByscore Captain 0 5
Få info om sorterte sett
Bruk ZCard -kommandoen for å hente antall medlemmer i et gitt sortert sett.
127.0.0.1: 6379> Zcard -kapteiner
Returverdien er et heltall som viser antall elementer i et sett.
Hvis du vil få antall medlemmer innen et bestemt område, bruk Zcount -kommandoen.
127.0.0.1: 6379> Zcount Captain 0 10
Tilsvarende returnerer kommandoen en heltallverdi.
For å få poengsummen til et spesifikt medlem i et sortert sett, bruk Zscore -kommandoen:
127.0.0.1: 6379> Zscore -kapteiner "Carol Freeman"
"2"
Kommandoen vil returnere poengsummen til medlemmet hvis det eksisterer.
Konklusjon
Denne artikkelen diskuterte hvordan du kommer i gang og bruker sorterte sett i Ruby. Husk at det er flere til sorterte sett enn diskutert i denne guiden. Vurder dokumentasjonen for å lære mer.