Radise LSET

Radise Lset



En Redis-liste er en datastruktur, der indeholder en sekvens af strengelementer i indsættelsesrækkefølgen. Den er baseret på Linked List. Så indsættelsen af ​​et element ved hovedet og halen udføres i konstant tid. Den eneste ulempe ved Redis-listerne er, at det er lidt dyrt at forespørge elementer efter et indeks, hvilket tager tid direkte proportionalt med indekset for det adgangsgivende element. Årsagen bag den linkede listebaserede implementering er at gøre dataindsættelsen hurtigere for en meget lang liste af elementer.

Redis-lister har 0-baseret indeksering. Det første element er udpeget som 0 th indeks; den anden er på 1 st indeks og så videre. Adgang til haleelementer med indekserne er muligt med negative indekser, ligesom det sidste element er indekseret som -1, det næstsidste element er -2, og så videre.









Listeelementerne kan indstilles til ethvert givet indeks med kommandoen LSET, som er beskrevet i det følgende afsnit.



LSET-kommandoen

LSET-kommandoen sætter et element ved det givne indeks på en Redis-liste gemt på den angivne nøgle. Det har følgende simple syntaks:





LSET liste_nøgle indekselement

liste_nøgle : Nøglen til Redis-listen.

indeks : Indekset, hvor du skal indstille et element.



element : Det strengelement, der skal indstilles til det angivne indeks.

Denne kommando returnerer en simpel streng 'OK', hvis elementet er indstillet korrekt. Når den støder på et indeks, der er uden for området, returnerer LSET-kommandoen en fejl.

En af de mest almindelige anvendelsesmuligheder for Redis-listerne er at gemme opslag på sociale medier og deres opdateringer for individuelle brugere. LSET-kommandoen spiller en vigtig rolle der, som diskuteret i det følgende afsnit.

Use Case – Opdater opslag på sociale medier

Lad os antage en begivenhed, hvor en virksomhed vedligeholder sit eget sociale medie-websted med tusindvis af brugere, der aktivt poster opslag og statusser. De har identificeret, at Redis-listerne er den egnede kandidat til at besidde disse poster og statusser, hvor hyppig indsættelse sker, og Redis-listerne udfører indsættelse på konstant tid.

Lad os oprette en Redis-liste for et givet bruger-id 100, som vil blive brugt til at gemme den pågældende brugers indlæg og statusmeddelelser. Vi vil bruge LPUSH-kommandoen til at sætte nogle dummy-indlæg og statusmeddelelser til bruger-id 100.

LPUSH social-media:user:100 '2022-08-01:God dag at starte med.'
LPUSH social-media:user:100 '2022-08-05:Startet nyt job hos linuxhint'
LPUSH social-media:user:100 '2022-08-06:Fantastisk fest i dag'
LPUSH social-media:user:100 '2022-08-07:Dårlig dag!!!'

Produktion

Antag, at brugeren med bruger-id 100 vil opdatere et af sine gamle indlæg. Antag, at det tredje indlæg, han har postet, skal rettes. LSET-kommandoen kan nemt opnå dette, som vist i det følgende.

Da det tredje element er ved indeks 2 fra hovedet. Vi vil opdatere det som følger:

LSET social-media:user:100 2 'Begyndte ny rolle som forfatter på LinuxHint'

Produktion

Som forventet blev kommandoen udført med succes, og elementet i det andet indeks blev opdateret. Lad os tjekke listen igen som følger:

Vi kan gøre det samme ved at angive indekset fra halen som følger:

LSET social-media:user:100 -2 'Startet ny rolle som skribent hos LinuxHint'

Som forventet er det tredje element blevet sat til den nye streng 'Job startede på LinuxHINT'.

Hvis du angiver et indeks, der er uden for rækkevidde, vil det give en fejl, som vist i følgende:

LSET social-media:user:100 6 'Job startet hos LinuxHINT'

Produktion

Konklusion

LSET-kommandoen sætter et listeelement ved et specificeret indeks til et givet element på Redis-listen, der er gemt ved en given nøgle. Da Redis listeindekserne starter fra 0, er det det første element. Indeks 1 er det andet element på listen, og så videre. Som diskuteret kan indekserne for elementerne, der starter fra halen, specificeres ved hjælp af negative tal som -1 er det sidste element, -2 er elementet før det sidste, og så videre. Når et ikke-eksisterende indeks sendes, vil LSET-kommandoen returnere en fejl. Desuden returnerer denne kommando et simpelt strengoutput over den vellykkede udførelse.