Reďkovka LSET

Redkovka Lset



Zoznam Redis je dátová štruktúra, ktorá obsahuje sekvenciu prvkov reťazca v poradí vloženia. Je založený na prepojenom zozname. Takže vloženie prvku na hlavu a chvost sa vykonáva v konštantnom čase. Jedinou nevýhodou zoznamov Redis je, že dopytovanie prvkov podľa indexu je trochu nákladné, čo si vyžaduje čas priamo úmerný indexu pristupujúceho prvku. Dôvodom implementácie založenej na prepojenom zozname je zrýchlenie vkladania údajov pre veľmi dlhý zoznam položiek.

Zoznamy Redis majú indexovanie založené na nule. Prvý prvok je označený ako 0 th index; druhý je na 1 sv index, a tak ďalej. Prístup k koncovým prvkom pomocou indexov je možný so zápornými indexmi, napríklad posledný prvok je indexovaný ako -1, predposledný prvok je -2 atď.









Prvky zoznamu možno nastaviť na ľubovoľný daný index pomocou príkazu LSET, ktorý je popísaný v nasledujúcej časti.



Príkaz LSET

Príkaz LSET nastaví prvok na daný index zoznamu Redis uloženého na zadanom kľúči. Má nasledujúcu jednoduchú syntax:





Indexový prvok LSET list_key

zoznam_kľúč : Kľúč zoznamu Redis.

index : Index, do ktorého potrebujete nastaviť prvok.



prvok : Prvok reťazca, ktorý sa má nastaviť na zadaný index.

Tento príkaz vráti jednoduchý reťazec „OK“, ak bol prvok nastavený správne. Vždy, keď narazí na index, ktorý je mimo rozsahu, príkaz LSET vráti chybu.

Jedným z najbežnejších prípadov použitia zoznamov Redis je ukladanie príspevkov sociálnych médií a ich aktualizácií pre jednotlivých používateľov. Príkaz LSET tam hrá dôležitú úlohu, ako je uvedené v nasledujúcej časti.

Prípad použitia – Aktualizujte príspevky na sociálnych sieťach

Predpokladajme udalosť, pri ktorej spoločnosť udržiava svoju vlastnú webovú stránku sociálnych médií s tisíckami používateľov, ktorí aktívne uverejňujú príspevky a statusy. Zistili, že zoznamy Redis sú vhodným kandidátom na zastávanie týchto postov a statusov, kde dochádza k častému vkladania, a zoznamy Redis vykonávajú vkladanie v konštantnom čase.

Vytvorme zoznam Redis pre dané ID používateľa 100, ktorý sa použije na ukladanie príspevkov a správ o stave konkrétneho používateľa. Príkaz LPUSH použijeme na vloženie fiktívnych príspevkov a stavových správ pre ID používateľa 100.

LPUSH social-media:user:100 '2022-08-01: Pekný deň na začiatok.'
LPUSH social-media:user:100 '2022-08-05:Začal novú prácu v linuxhint'
LPUSH social-media:user:100 '2022-08-06:Dnes skvelá párty'
LPUSH social-media:user:100 '2022-08-07:Zlý deň!!!'

Výkon

Predpokladajme, že používateľ s ID používateľa 100 aktualizuje jeden zo svojich starých príspevkov. Predpokladajme, že tretí príspevok, ktorý zverejnil, potrebuje nejakú opravu. Príkaz LSET to môže ľahko dosiahnuť, ako je znázornené nižšie.

Keďže tretí prvok je na indexe 2 od hlavy. Budeme ho aktualizovať nasledovne:

LSET social-media:user:100 2 'Začal novú rolu ako spisovateľ v LinuxHint'

Výkon

Ako sa očakávalo, príkaz bol úspešne vykonaný a prvok na druhom indexe bol aktualizovaný. Znova skontrolujte zoznam takto:

To isté môžeme urobiť zadaním indexu z chvosta takto:

LSET social-media:user:100 -2 'Začal novú rolu ako spisovateľ v LinuxHint'

Ako sa očakávalo, tretí prvok bol nastavený na nový reťazec „Úloha začala v LinuxHINT“.

Ak zadáte index, ktorý je mimo rozsahu, vyvolá to chybu, ako je znázornené v nasledujúcom texte:

LSET social-media:user:100 6 'Úloha začala v LinuxHINT'

Výkon

Záver

Príkaz LSET nastaví prvok zoznamu na zadaný index na daný prvok zoznamu Redis uloženého pod daným kľúčom. Keďže indexy zoznamu Redis začínajú od 0, je to prvý prvok. Index 1 je druhý prvok zoznamu a tak ďalej. Ako už bolo uvedené, indexy prvkov začínajúce od konca môžu byť špecifikované pomocou záporných čísel, napríklad -1 je posledný prvok, -2 je prvok pred posledným atď. Vždy, keď sa odovzdá neexistujúci index, príkaz LSET vráti chybu. Okrem toho tento príkaz vráti výstup jednoduchého reťazca cez úspešné vykonanie.