Redkev LSET

Redkev Lset



Seznam Redis je podatkovna struktura, ki vsebuje zaporedje elementov niza v vrstnem redu vstavljanja. Temelji na povezanem seznamu. Torej se vstavljanje elementa na glavo in rep izvaja v konstantnem času. Edina slaba stran seznamov Redis je, da je poizvedovanje elementov po indeksu nekoliko drago, kar zahteva čas, ki je neposredno sorazmeren z indeksom elementa, ki dostopa. Razlog za izvedbo na podlagi povezanega seznama je hitrejše vstavljanje podatkov za zelo dolg seznam elementov.

Seznami Redis imajo indeksiranje na osnovi 0. Prvi element je označen kot 0 th indeks; drugi je na 1 st indeks in tako naprej. Dostop do repnih elementov z indeksi je možen z negativnimi indeksi, kot je zadnji element indeksiran kot -1, predzadnji element je -2 in tako naprej.









Elemente seznama lahko nastavite na kateri koli dani indeks z ukazom LSET, ki je opisan v naslednjem razdelku.



Ukaz LSET

Ukaz LSET nastavi element na podani indeks seznama Redis, shranjenega na podanem ključu. Ima naslednjo preprosto sintakso:





Element indeksa LSET list_key

seznam_ključ : Ključ seznama Redis.

kazalo : Indeks, kjer morate nastaviti element.



element : Element niza, ki bo nastavljen na podani indeks.

Ta ukaz vrne preprost niz »OK«, če je bil element pravilno nastavljen. Kadarkoli naleti na indeks, ki je izven obsega, ukaz LSET vrne napako.

Eden najpogostejših primerov uporabe seznamov Redis je shranjevanje objav v družbenih medijih in njihovih posodobitev za posamezne uporabnike. Ukaz LSET ima tam pomembno vlogo, kot je razloženo v naslednjem razdelku.

Primer uporabe – Posodobite objave v družbenih medijih

Predpostavimo dogodek, pri katerem podjetje vzdržuje lastno spletno stran družbenih medijev s tisoči uporabnikov, ki aktivno objavljajo objave in statuse. Ugotovili so, da so seznami Redis primeren kandidat za zasedbo teh delovnih mest in statusov, kjer se pogosto vstavljajo, seznami Redis pa izvajajo vstavljanje v konstantnem času.

Ustvarimo seznam Redis za dani ID uporabnika 100, ki bo uporabljen za shranjevanje objav in sporočil o stanju tega določenega uporabnika. Z ukazom LPUSH bomo dodali nekaj lažnih objav in statusnih sporočil za ID uporabnika 100.

LPUSH social-media:user:100 '2022-08-01: Lep dan za začetek.'
LPUSH social-media:user:100 '2022-08-05: Začel novo službo pri linuxhintu'
LPUSH social-media:user:100 '2022-08-06:Odlična zabava danes'
LPUSH social-media:user:100 '2022-08-07:Slab dan!!!'

Izhod

Predpostavimo, da bo uporabnik z uporabniškim ID-jem 100 posodobil eno od svojih starih objav. Recimo, da tretjo objavo, ki jo je objavil, potrebuje nekaj popravkov. Ukaz LSET lahko to zlahka doseže, kot je prikazano v nadaljevanju.

Ker je tretji element na indeksu 2 od glave. Posodabljali ga bomo na naslednji način:

LSET social-media:user:100 2 'Začel novo vlogo kot pisec pri LinuxHint'

Izhod

Kot je bilo pričakovano, je bil ukaz uspešno izveden in element na drugem indeksu je bil posodobljen. Ponovno preverimo seznam na naslednji način:

Enako lahko storimo tako, da določimo indeks iz repa, kot sledi:

LSET social-media:user:100 -2 'Začel novo vlogo kot pisec pri LinuxHint'

Kot je bilo pričakovano, je bil tretji element nastavljen na nov niz »Opravilo se je začelo pri LinuxHINT«.

Če podate indeks, ki je izven obsega, bo povzročil napako, kot je prikazano v naslednjem:

LSET social-media:user:100 6 'Posel se je začel v LinuxHINT'

Izhod

Zaključek

Ukaz LSET nastavi element seznama z določenim indeksom na dani element seznama Redis, shranjenega na danem ključu. Ker se indeksi seznama Redis začnejo z 0, je to prvi element. Indeks 1 je drugi element seznama in tako naprej. Kot smo že omenili, lahko indekse elementov, ki se začnejo od repa, podamo z uporabo negativnih števil, kot je -1 zadnji element, -2 predzadnji element in tako naprej. Kadarkoli je posredovan neobstoječi indeks, bo ukaz LSET vrnil napako. Poleg tega ta ukaz po uspešni izvedbi vrne preprost izhodni niz.