Rädisa LSET

Radisa Lset



En Redis-lista är en datastruktur som innehåller en sekvens av strängelement i insättningsordningen. Den är baserad på länkad lista. Så införandet av ett element vid huvudet och svansen utförs i konstant tid. Den enda nackdelen med Redis-listorna är att det är lite dyrt att fråga element efter ett index, vilket tar tid direkt proportionellt mot indexet för det accessande elementet. Anledningen bakom den länkade listbaserade implementeringen är att göra datainsättningen snabbare för en mycket lång lista med objekt.

Redis-listor har 0-baserad indexering. Det första elementet betecknas som 0 th index; den andra är på 1:an st index och så vidare. Att komma åt svanselement med indexen är möjligt med negativa index som att det sista elementet är indexerat som -1, det näst sista elementet är -2, och så vidare.









Listelementen kan ställas in på vilket givet index som helst med kommandot LSET, som beskrivs i följande avsnitt.



Kommandot LSET

LSET-kommandot ställer in ett element vid det givna indexet för en Redis-lista lagrad vid den angivna nyckeln. Den har följande enkla syntax:





LSET list_key indexelement

list_key : Nyckeln i Redis-listan.

index : Indexet där du behöver ställa in ett element.



element : Strängelementet som ska ställas in på det angivna indexet.

Detta kommando returnerar en enkel sträng 'OK' om elementet har ställts in korrekt. När den stöter på ett index som ligger utanför intervallet returnerar kommandot LSET ett fel.

Ett av de vanligaste användningsfallen för Redis-listorna är att lagra inlägg på sociala medier och deras uppdateringar för enskilda användare. LSET-kommandot spelar en viktig roll där, som diskuteras i följande avsnitt.

Användningsfall – Uppdatera inlägg på sociala medier

Låt oss anta ett evenemang där ett företag har sin egen webbplats för sociala medier med tusentals användare som aktivt publicerar inlägg och statusar. De har identifierat att Redis-listorna är den lämpliga kandidaten för att inneha dessa poster och statusar där ofta infogning sker, och Redis-listorna utför insättning i konstant tid.

Låt oss skapa en Redis-lista för ett givet användar-id 100 som kommer att användas för att lagra just den användarens inlägg och statusmeddelanden. Vi kommer att använda kommandot LPUSH för att lägga in några dummy-inlägg och statusmeddelanden för användar-id 100.

LPUSH social-media:user:100 '2022-08-01: Trevlig dag att börja med.'
LPUSH social-media:user:100 '2022-08-05:Började nytt jobb på linuxhint'
LPUSH social-media:user:100 '2022-08-06:Bra fest idag'
LPUSH social-media:user:100 '2022-08-07:Dålig dag!!!'

Produktion

Antag att användaren med användar-id 100 kommer att uppdatera ett av sina gamla inlägg. Anta att det tredje inlägget som han har postat behöver korrigeras. LSET-kommandot kan enkelt uppnå detta, som visas i följande.

Eftersom det tredje elementet är på index 2 från huvudet. Vi kommer att uppdatera den enligt följande:

LSET social-media:user:100 2 'Började en ny roll som författare på LinuxHint'

Produktion

Som väntat kördes kommandot framgångsrikt och elementet vid det andra indexet uppdaterades. Låt oss kontrollera listan igen enligt följande:

Vi kan göra detsamma genom att specificera indexet från svansen enligt följande:

LSET social-media:user:100 -2 'Började en ny roll som författare på LinuxHint'

Som väntat har det tredje elementet ställts in på den nya strängen 'Jobb startat på LinuxHINT'.

Om du anger ett index som ligger utanför intervallet kommer ett fel att visas, som visas i följande:

LSET social-media:user:100 6 'Jobb började på LinuxHINT'

Produktion

Slutsats

LSET-kommandot sätter ett listelement vid ett specificerat index till ett givet element i Redis-listan lagrad vid en given nyckel. Eftersom Redis listindex börjar från 0, är ​​det det första elementet. Index 1 är det andra elementet i listan, och så vidare. Som diskuterats kan indexen för elementen som börjar från svansen specificeras med hjälp av negativa tal som -1 är det sista elementet, -2 är elementet före det sista, och så vidare. Närhelst ett icke-existerande index skickas kommer kommandot LSET att returnera ett fel. Dessutom returnerar detta kommando en enkel strängutmatning över den lyckade exekveringen.