Redis LSET

Redis Lset



Redise loend on andmestruktuur, mis hoiab stringielementide jada sisestamise järjekorras. See põhineb lingitud loendil. Niisiis, elemendi sisestamine peas ja sabas toimub konstantse aja jooksul. Redise loendite ainus negatiivne külg on see, et elementide päringute tegemine indeksi järgi on veidi kulukas, mis võtab aega, mis on otseselt võrdeline juurdepääsu elemendi indeksiga. Lingitud loendipõhise juurutuse põhjuseks on andmete sisestamise kiiremaks muutmine väga pika üksuste loendi puhul.

Redise loenditel on 0-põhine indekseerimine. Esimene element on tähistatud kui 0 th indeks; teine ​​on 1. kohal St indeks ja nii edasi. Indeksidega sabaelementidele juurdepääs on võimalik negatiivsete indeksitega, näiteks viimane element on indekseeritud kui -1, eelviimane element on -2 ja nii edasi.









Loendielemente saab määrata mis tahes antud indeksile käsuga LSET, mida kirjeldatakse järgmises jaotises.



LSET-i käsk

Käsk LSET seab elemendi määratud võtmele salvestatud Redis-loendi antud indeksisse. Sellel on järgmine lihtne süntaks:





LSET list_key indeksi element

list_key : Redise loendi võti.

indeks : indeks, kuhu peate elemendi määrama.



element : stringi element, mis määratakse määratud indeksile.

See käsk tagastab lihtsa stringi 'OK', kui element on õigesti seadistatud. Iga kord, kui see kohtab indeksit, mis on vahemikust väljas, tagastab LSET-käsk veateate.

Redise loendite üks levinumaid kasutusjuhtumeid on sotsiaalmeedia postituste ja nende värskenduste salvestamine üksikutele kasutajatele. LSET-käsk mängib seal olulist rolli, nagu on kirjeldatud järgmises jaotises.

Kasutusjuhtum – värskendage sotsiaalmeedia postitusi

Oletame, et sündmus, kus ettevõte haldab oma sotsiaalmeedia veebisaiti, kus tuhanded kasutajad postitavad aktiivselt postitusi ja staatusi. Nad on tuvastanud, et Redise loendid on sobivad kandidaadid nendele ametikohtadele ja staatustele, kus neid sageli sisestatakse, ning Redise loendid teostavad sisestamist konstantse aja jooksul.

Loome antud kasutaja ID 100 jaoks Redise loendi, mida kasutatakse selle konkreetse kasutaja postituste ja olekuteadete salvestamiseks. Kasutame käsku LPUSH, et panna kasutaja ID 100 jaoks mõned näivpostitused ja olekuteated.

LPUSH sotsiaalmeedia:user:100 '2022-08-01:Hea päev alustamiseks.'
LPUSH sotsiaalmeedia:user:100 '2022-08-05:Alustasin uut tööd ettevõttes linuxhint'
LPUSH sotsiaalmeedia:user:100 '2022-08-06:Suurepärane pidu täna'
LPUSH sotsiaalmeedia:user:100 '2022-08-07:Halb päev!!!'

Väljund

Oletame, et kasutaja ID-ga 100 värskendab mõnda oma vana postitust. Oletame, et tema postitatud kolmas postitus vajab parandamist. Käsk LSET saab selle hõlpsasti saavutada, nagu on näidatud järgmises.

Kuna kolmas element asub peast indeksis 2. Värskendame seda järgmiselt:

LSET sotsiaalmeedia:user:100 2 'Alustas uut rolli LinuxHintis kirjanikuna'

Väljund

Nagu oodatud, täideti käsk edukalt ja teise indeksi elementi värskendati. Kontrollime loendit järgmiselt:

Sama saame teha, määrates indeksi sabast järgmiselt:

LSET sotsiaalmeedia:user:100 -2 'Alustas uut rolli LinuxHintis kirjanikuna'

Ootuspäraselt on kolmas element seatud uuele stringile 'Töö algas LinuxHINTis'.

Kui määrate vahemikust välja jääva indeksi, kuvatakse tõrketeade, nagu on näidatud järgmises:

LSET sotsiaalmeedia:user:100 6 'Töö algas LinuxHINTis'

Väljund

Järeldus

LSET-käsk määrab kindlaksmääratud indeksi loendielemendi Redis-loendi antud elemendile, mis on salvestatud antud võtmele. Kuna Redise loendi indeksid algavad nullist, on see esimene element. Indeks 1 on loendi teine ​​element jne. Nagu öeldud, saab sabast algavate elementide indekseid määrata negatiivsete arvude abil, näiteks -1 on viimane element, -2 on element enne viimast jne. Kui edastatakse olematu indeks, tagastab LSET-käsk veateate. Lisaks tagastab see käsk eduka täitmise korral lihtsa stringiväljundi.