Redis LPop

Redis LPop

Redis -listen er en bestilt sekvens av strenger. Det kan inneholde opptil fire milliarder strengelementer. Generelt brukes Redis -listene til å implementere køer, stack og køledere for bakgrunnsjobber. Redis er en nøkkelverdibutikk, men den støtter fortsatt en datastruktur for koblet liste, som er et unikt trekk ved Redis blant andre data om nøkkelverdier. Elementene kan skyves fra både hodet og halen. Redis List -operasjoner fungerer i konstant tidskompleksitet ved hode eller hale som er svært effektiv.

I tillegg kan en Redis -liste sammenlignes med Java Array List, JavaScript Array eller Python List.

Redis lpop -kommandoen avslørt

LPOP -kommandoen fjerner eller sletter elementer fra hodet til en spesifisert Redis -liste. Som standard dukker det opp det første elementet fra hodet eller fronten av listen som er svært effektiv fordi Redis List -operasjonene ved hodet eller halen fungerer i konstant tidskompleksitet. Videre godtar LPOP -kommandoen et valgfritt tellingsargument som tvinger det til å fjerne et spesifisert antall elementer fra begynnelsen av listen. Det valgfrie tellingsargumentet er lagt til Redis LPOP -kommandoen fra versjon 6.2.0.

La oss se raskt på syntaksen til LPOP -kommandoen.

LPOP KEY_OF_LIST 1

Key_of_list: Navnet på nøkkelen til Redis -listen

TELLE: Antall elementer som skal fjernes fra hodet/fronten av listen som er lagret på den spesifiserte tasten Key_of_list.

Når telleargumentet ikke er spesifisert, returnerer LPOP -kommandoen et enkelt poppet element fra fronten av listen som er lagret på den spesifiserte tasten. Hver gang tellingsargumentet er spesifisert sammen med nøkkelen til Redis -listen, returnerer LPOP -kommandoen utvalget av poppede elementer til klienten.

Bruk sak: Implementering av en kø med Redis -liste og LPOP -kommando

Generelt er køen en datastruktur som oppfører seg i første-først-ut-natur. Redis -lister kan brukes til å implementere oppførselen til en kø ved hjelp av LPOP -kommandoen sammen med RPush -kommandoen.

La oss lage en liste som heter 'Pasienter' ved å legge til fem elementer som vist i det følgende. Siden vi fokuserer på en kø, bør RPUSH -kommandoen brukes til å sette inn hvert nytt element fra halen på listen.

RPush -pasienter "Derek" "Mary" "Nishu" "Jack" "Chan"

Vi kan inspisere Pasienter Liste som følger:

La oss anta at den første pasienten allerede er servert av sykehuset. Derfor vil vi fjerne den første personen fra køen ved å bruke LPOP -kommandoen som følger.

LPOP -pasienter

Dette bør fjerne "Derek" fra køen og returnere den som følger fordi LPOP -kommandoen fjerner et enkelt element fra hodet på listen som standard.

Vi kan inspisere den resulterende køen ved å bruke Lrange -kommandoen som vist i følgende:

Lrange pasienter 0 -1

“Derek” har allerede dukket opp fra køen, og bare fire elementer er igjen. Så Mary er den første personen i køen nå.

La oss anta et scenario der både Mary og Nishu blir servert sammen ved å gi en vaksine. Så vi bør fjerne begge pasientene samtidig ved å bruke LPOP -kommandoen som følger:

LPOP -pasienter 2

Tellingsargumentet er 2 i kommandoen ovenfor som skal poppe de to første elementene fra Pasienter kø.

Vi kan inspisere køen ved å bruke Lrange -kommandoen som følger:

Som forventet ble Mary og Nishu fjernet fra Redis -listen.

Det er noen tilfeller der den spesifiserte listetasten ikke er tilgjengelig i Redis Data Store. I så fall returnerer LPOP -kommandoen nil Utgang som følger:

LPOP ikke -eksistens

Tilsvarende kan Redis -listen og LPOP -kommandoen brukes til å implementere bakgrunnsjobbkøer i et system. I tillegg har LPOP -kommandoen sin blokkeringsvariant kjent som BLPOP som blokkerer klienten til et element er tilgjengelig på listen eller timeout er nådd. RPOP er den motsatte versjonen av LPOP -kommandoen som fjerner elementer fra halen på Redis -listen.

Konklusjon

Oppsummert opererer LPOP -kommandoen på Redis List Data Structures. Som standard fjerner det det første elementet i den spesifiserte listen og returnerer elementet til klienten. Som diskutert tar LPOP -kommandoen bare en konstant tid å operere på hode eller hale på en liste som er svært effektiv. Antall elementer som skal fjernes fra listen kan spesifiseres eventuelt sammen med listens nøkkel. LPOP -kommandoen brukes i forskjellige applikasjoner for å implementere køer, stabler og køledere for bakgrunnsjobber. Totalt sett oppfører Redis LPOP -kommandoen seg nøyaktig det samme som RPOP -kommandoen, men på hodet eller forsiden av en gitt liste.