Rotkvica LSET

Rotkvica Lset



Redis popis je struktura podataka koja sadrži niz elemenata niza u redoslijedu umetanja. Temelji se na povezanom popisu. Dakle, umetanje elementa u glavu i rep se izvodi u konstantnom vremenu. Jedina mana Redis popisa je da je postavljanje upita elementima prema indeksu malo skupo, što zahtijeva vrijeme izravno proporcionalno indeksu elementa kojem se pristupa. Razlog implementacije temeljene na povezanom popisu je brže umetanje podataka za vrlo dugačak popis stavki.

Redis liste imaju indeksiranje temeljeno na 0. Prvi element je označen kao 0 th indeks; drugi je na 1 sv indeks, i tako dalje. Pristup repnim elementima s indeksima moguć je s negativnim indeksima kao što je zadnji element indeksiran kao -1, pretposljednji element je -2, i tako dalje.









Elementi popisa mogu se postaviti na bilo koji zadani indeks naredbom LSET, koja je opisana u sljedećem odjeljku.



Naredba LSET

Naredba LSET postavlja element na zadani indeks Redis liste pohranjene na navedenom ključu. Ima sljedeću jednostavnu sintaksu:





LSET list_key element indeksa

ključ_liste : ključ Redis liste.

indeks : Indeks gdje trebate postaviti element.



element : Element niza koji se postavlja na navedeni indeks.

Ova naredba vraća jednostavan niz 'OK' ako je element ispravno postavljen. Kad god naiđe na indeks koji je izvan raspona, naredba LSET vraća pogrešku.

Jedan od najčešćih slučajeva korištenja Redis popisa je pohranjivanje objava na društvenim mrežama i njihovih ažuriranja za pojedinačne korisnike. Naredba LSET tu igra važnu ulogu, kao što je objašnjeno u sljedećem odjeljku.

Slučaj upotrebe – ažurirajte objave na društvenim mrežama

Pretpostavimo događaj na kojem tvrtka održava vlastitu web stranicu društvenih medija s tisućama korisnika koji aktivno objavljuju postove i statuse. Identificirali su da su Redis liste prikladan kandidat za držanje ovih radnih mjesta i statusa gdje se često umetanje događa, a Redis liste vrše umetanje u konstantnom vremenu.

Kreirajmo Redis popis za određeni ID korisnika 100 koji će se koristiti za pohranjivanje objava i statusnih poruka tog određenog korisnika. Koristit ćemo naredbu LPUSH za postavljanje nekih lažnih postova i statusnih poruka za korisnički ID 100.

LPUSH social-media:user:100 '2022-08-01:Lijep dan za početak.'
LPUSH social-media:user:100 '2022-08-05: Započeo novi posao u linuxhintu'
LPUSH social-media:user:100 '2022-08-06:Sjajna zabava danas'
LPUSH social-media:user:100 '2022-08-07:Loš dan!!!'

Izlaz

Pretpostavimo da će korisnik s korisničkim ID-om 100 ažurirati jedan od svojih starih postova. Pretpostavimo da treći post koji je objavio treba malo ispraviti. Naredba LSET to može lako postići, kao što je prikazano u nastavku.

Budući da je treći element na indeksu 2 od glave. Ažurirat ćemo ga na sljedeći način:

LSET social-media:user:100 2 'Započeo novu ulogu pisca u LinuxHintu'

Izlaz

Kao što se očekivalo, naredba je uspješno izvršena, a element na drugom indeksu je ažuriran. Ponovno provjerimo popis na sljedeći način:

Možemo učiniti isto navođenjem indeksa iz repa na sljedeći način:

LSET social-media:user:100 -2 'Započeo novu ulogu pisca u LinuxHintu'

Kao što je i očekivano, treći element postavljen je na novi niz 'Posao započet u LinuxHINT'.

Ako navedete indeks koji je izvan raspona, pojavit će se pogreška, kao što je prikazano u nastavku:

LSET social-media:user:100 6 'Posao započet u LinuxuHINT'

Izlaz

Zaključak

Naredba LSET postavlja element popisa na specificirani indeks na dani element Redis popisa pohranjenog na danom ključu. Budući da indeksi popisa Redis počinju od 0, to je prvi element. Indeks 1 je drugi element liste, i tako dalje. Kao što je spomenuto, indeksi elemenata počevši od repa mogu se odrediti korištenjem negativnih brojeva kao što je -1 zadnji element, -2 element prije zadnjeg, i tako dalje. Kad god se proslijedi nepostojeći indeks, LSET naredba će vratiti grešku. Nadalje, ova naredba vraća jednostavan string izlaz preko uspješnog izvođenja.