Redis LPOS

Redis LPOS

“Redis -lister er koblede lister over strenger bestilt i rekkefølge. Redis List -operasjoner er ekstremt effektive siden de kjører på konstant tidskompleksitet i hodet eller halen. Redis er unik blant nøkkelverdibutikker ved at den tillater koblede lister, noe som gjør det til en koblet listestruktur. Maksimal lengde på en Redis -liste er 2^32 - 1 (4.294.967.295) elementer, som har mer enn 4 milliarder elementer per liste.”

Ovennevnte diagram skildrer arrangementet av en Redis-listeelementer og i indeksformatet, som spiller en viktig rolle når du bruker LPOS-kommandoen.

Kort oversikt over LPOS -kommandoen

LPOS -kommandoen i Redis returnerer den samsvarende indeksen for elementene på en liste. Videre skanner LPOS -kommandoen en liste fra den første indeksen til den siste indeksen til et matchende element er funnet for det spesifiserte elementet. Når det spesifiserte listeelementet er funnet, returneres elementindeksen. Det spesielle Nil Verdien kommer tilbake når ingen kamp blir funnet.

En rask gjennomgang av syntaksen til LPOS -kommandoen

Lpos list_key list_element [rang rang] [count num-matches] [maxlen lengde]

Argumentene i de firkantede parentesene er valgfrie. Den normale oppførselen til LPOS -kommandoen er å returnere indeksen for den første forekomsten av det spesifiserte elementet når valgfrie argumenter ikke er gitt.

De RANG Alternativet brukes til å spesifisere hvilken forekomst av verdien som skal returneres og kan være nyttig når listen består av mange forekomster av samme verdi.

De TELLE Alternativet returnerer plasseringen av flere forekomster av det spesifiserte listeelementet.

De Maxlen Alternativet brukes til å begrense sammenligningene til et spesifisert beløp. Videre hjelper det å begrense hvor lang tid en kommando tar å utføre, spesielt når det er en stor liste, og når man forventer at en kamp blir funnet tidlig.

LPOS -kommandoen i aksjon

Opprette en Redis -liste kalt “Navn” ved hjelp av RPush for å demonstrere LPOS -kommandoen som følger:

Rpush navngir "Jenny" "Leon" "Nick" "Jenny" "Heron" "Jenny" "Elle" "Heron"

Resultat

Inspisere utdataene fra listen gjennom kommandoen nedenfor:

Lrange navn 0 -1

Resultat

Bruke LPOS -kommandoen for å finne den første forekomsten av “Jenny” som følger:

LPOS navngir "Jenny"

Resultat

Som nevnt, når ingen valgfrie argumenter er spesifisert, returnerer LPOS -kommandoen den første forekomsten av elementet.

Rangeringsalternativet

Dette alternativet spesifiserer forekomsten av verdien som skal returneres og er nyttig når listen inneholder flere forekomster av den samme verdien.

Den opprettede listen inneholder flere forekomster av Jenny og Heron. I det tidligere eksemplet, siden rangeringsalternativet ikke ble spesifisert, ble det første elementforekomsten returnert som utgang.

Bruker rangeringsalternativet for å returnere plasseringen av andre forekomst av Jenny Bruke eksemplet nedenfor:

LPOS -navn "Jenny" rangering 2

Resultat

Her RANG Alternativet er spesifisert som 2. Så LPOS -kommandoen returnerer posisjonen til andre forekomst av det gitte listeelementet, som er 3. Hvis rangeringsalternativet er gitt som 1, bør det returnere den første forekomsten av det spesifiserte elementet; Hvis 2 er gitt, sender den ut indeksen for andre forekomst; 3 produserer indeksen i tredje forekomst, og så videre.

Hvis en rangering er spesifisert høyere enn antall forekomster, returnerer den nil:

LPOS -navn "Jenny" rangering 20

Resultat

Rangeringsalternativet kan også brukes som en negativ rang der det fungerer bakover fra listenes haler:

LPOS navngir "Jenny" -rangering -1

Resultat

Her, -1 brukes til å returnere plasseringen av den siste forekomsten av verdien. I dette tilfellet er stillingen som "Jenny" den femte indeksen.

Antellingsalternativet

Dette alternativet brukes til å returnere plasseringen av flere forekomster av en spesifisert verdi eller element:

LPOS -navn "Jenny" Count 2

Resultat

Dette alternativet kan også brukes til å returnere plasseringen av alle forekomster. Her kan en person bruke null (0) for å fortelle kommandoen om å returnere alle kampene i henhold til nødvendigheten:

LPOS -navn "Jenny" Count 0

Resultat

Antellingsalternativet kan kombineres med rangeringsalternativet for å returnere alle forekomster fra et bestemt punkt som følger:

LPOS -navn "Jenny" Rank 2 Count 0

Resultat

Maxlen -alternativet

Maxlen brukes til å begrense sammenligningene til et spesifisert beløp og er nyttig for å begrense tiden kommandoen tar å behandle i tider når listen er stor, og en person trenger å finne en kamp tidlig.

For eksempel,

LPOS navngir "Jenny" Maxlen 2

Resultat

Her når kampen er funnet, returnerer den posisjonen eller indeksen til det gitte elementet.

Når du bruker en annen verdi:

LPOS -navn "Elle" Maxlen 2

Resultat

Som forventet finnes ikke elementet "Elle" innenfor den angitte maksimale grensen på 2.

En person kan også bruke null (0) for å spesifisere et ubegrenset antall sammenligninger,

LPOS -navn "Elle" Maxlen 0

Resultat

Konklusjon

Oppsummert spiller LPOS -kommandoen en viktig rolle i Redis -listen Datastrukturer når du returnerer indeksen for de matchende elementene på en liste. LPOS -kommandoen godtar forskjellige argumenter som utvider kommandoens oppførsel. Totalt sett opererer den konstant nær hodet og halen, eller Maxlen -alternativet er spesifisert, noe som er svært effektivt.