Redis Zrem

Redis Zrem

Redis sorterte setmedlemmer

Redis sorterte setter butikk unike elementer på en ordnet måte. Derfor kan det brukes i lav latensapplikasjoner som prioriterte køer, sanntids toppliste, sekundær indeksering osv. Hvert av disse setelementene tildeles en rangering og plassert i stigende rekkefølge basert på poengsumverdien. Flere kommandoer er tilgjengelige for å legge til, oppdatere og fjerne de sorterte settmedlemmene effektivt. Det viktigste med sorterte sett er at det etter tillegg eller fjerning av et fast medlem, fremdeles klarer å opprettholde medlemsrekkene og ordren.


Figuren ovenfor viser at Redis -sorterte setelementfjerningsscenario og hvordan det oppfører seg når flere medlemmer fjernes fra det. Den klarer å beholde riktig ordre- og indeksverdier ved å plassere hvert medlem deretter. I neste avsnitt vil vi se på det sorterte settet fjerne operasjonen på en detaljert måte.

Fjerne medlemmer med ZREM -kommando

ZREM -kommandoen brukes til å fjerne ett eller flere medlemmer fra et sortert sett som er lagret på en spesifisert nøkkel. Denne kommandoen har logaritmisk tidskompleksitet. Hvis kommandoen brukes til å fjerne ett element, er tidskompleksiteten proporsjonal med den logaritmiske verdien av antall elementer. Hvis flere elementer er spesifisert for å fjerne, vil det være o (number_of_elements_to_remove* log (total_number_of_set_elements)).

Syntaks

ZREM sorted_set_key medlem [medlem ...]


sorted_set_key: Dette er den unike identifikatoren der det sorterte settet er lagret på.
medlem: Dette er medlemmet som skal fjernes.

ZREM -kommandoen vil fjerne de spesifiserte medlemmene fra det sorterte settet. Det vil returnere et heltalls svar som er antallet fjerne medlemmer. Hver gang du spesifiserer et ikke-eksisterende medlem, vil det bli hoppet over. Kommandoen vil også kaste en feil hvis den gitte tasten ikke holder et sortert sett.

Eksempel - Administrer kundebestillingskø med Redis Zrem

La oss ta et virkelig verdensscenario der en restaurant betjener sine kunder basert på de første komerne som er tildelt med høyest prioritet. Når du serverer høyest prioriterte kunder først, bør restauranten fjerne hver kundeoppføring fra køen. Redis sortert sett vil være en ideell datastruktur for å implementere dette scenariet på en minneffektiv og effektiv måte.
Hvert medlem av Redis -sortert sett ser ut som følgende.


Som vist i illustrasjonen ovenfor, hver gang en kunde har blitt servert av restauranten, må medlemmet fjernes fra det sorterte settet. Vi kan bruke ZREM -kommandoen for å oppnå det.

La oss legge til de fire kundene som vises i figuren ovenfor. Vi bruker ZADD -kommandoen for å opprette det sorterte settet CustomerQueue og legg til fire medlemmer, som vist i det følgende.

Zadd CustomerQueue 1 Kunde: 10
Zadd CustomerQueue 9 Kunde: 1
Zadd CustomerQueue 7 Kunde: 6
Zadd CustomerQueue 5 Kunde: 2



La oss inspisere det sorterte settet ved hjelp av Zrange -kommandoen.

Zrange CustomerQueue 0 10 Withscores


Produksjon:


Som forventet er det sorterte settet CustomSqueue blitt bestilt basert på prioriteringsverdien.

Slett et medlem fra det sorterte settet

De Kunde: 10 som har høyest prioritet vil bli servert først. Derav Kunde: 10 Medlemmene må fjernes fra det sorterte settet. La oss bruke ZREM -kommandoen for å fjerne medlemmet.

ZREM CustomerQueue Customer: 10


Produksjon:


Som forventet er returverdien 1, noe som betyr at en oppføring er fjernet. La oss inspisere CustomerQueue en gang til.


Medlemmet Kunde: 10 har blitt slettet vellykket.

Slett flere medlemmer fra det sorterte settet

La oss si begge deler Kunde: 2 og Kunde: 6 har blitt servert fra to Windows Parallelly. Derfor bør vi slette begge medlemmene fra det sorterte settet. Vi kan bruke ZREM -kommandoen til å slette begge medlemmene samtidig.

Zrem CustomerQueue Kunde: 2 Kunde: 6


Produksjon:


Som forventet er returverdien 2, noe som indikerer at to medlemmer er slettet. La oss inspisere hele sorterte sett igjen.


ZREM -kommandoen anbefales å bruke når du trenger å fjerne elementer fra et sortert sett.

Konklusjon

For å oppsummere, brukes ZREM -kommandoen til å fjerne ett eller flere elementer fra et Redis -sortert sett som er lagret på en gitt tast. Det sletter ganske enkelt de spesifiserte medlemmene fra det sorterte settet. Bestillingen vil også holdes i det resulterende sorterte settet. Som nevnt ovenfor har den en logaritmisk tidskompleksitet som gjør at kommandoen skal brukes i sanntidsapplikasjoner. Derfor anbefales ZREM -kommandoen å bruke når du trenger å fjerne elementer fra et sortert sett.