Retiisi LSET

Retiisi Lset



Redis-luettelo on tietorakenne, joka sisältää merkkijonoelementtien sarjan lisäysjärjestyksessä. Se perustuu linkitettyyn luetteloon. Joten elementin lisääminen pään ja hännän kohdalle suoritetaan vakioajassa. Redis-luetteloiden ainoa haittapuoli on se, että elementtien kysely indeksin perusteella on hieman kallista, mikä vie aikaa suoraan verrannollinen pääsyelementin indeksiin. Syy Linked list -pohjaisen toteutuksen takana on nopeuttaa tietojen lisäämistä erittäin pitkälle kohteelle.

Redis-luetteloissa on 0-pohjainen indeksointi. Ensimmäinen elementti on merkitty 0:ksi th indeksi; toinen on kohdassa 1 st indeksi ja niin edelleen. Pääsy häntäelementteihin indekseillä on mahdollista negatiivisilla indekseillä, kuten viimeinen elementti on indeksoitu -1, toiseksi viimeinen elementti on -2 ja niin edelleen.









Listaelementit voidaan asettaa mihin tahansa indeksiin LSET-komennolla, joka kuvataan seuraavassa osiossa.



LSET-komento

LSET-komento asettaa elementin määritettyyn avaimeen tallennetun Redis-luettelon annettuun indeksiin. Siinä on seuraava yksinkertainen syntaksi:





LSET lista_avainindeksielementti

lista_avain : Redis-luettelon avain.

indeksi : Hakemisto, johon sinun on asetettava elementti.



elementti : Merkkijonoelementti, joka asetetaan määritettyyn indeksiin.

Tämä komento palauttaa yksinkertaisen merkkijonon 'OK', jos elementti on asetettu oikein. Aina kun se kohtaa indeksin, joka on alueen ulkopuolella, LSET-komento palauttaa virheen.

Yksi Redis-listojen yleisimmistä käyttötapauksista on sosiaalisen median viestien ja niiden päivitysten tallentaminen yksittäisille käyttäjille. LSET-komennolla on tärkeä rooli, kuten seuraavassa osiossa käsitellään.

Käyttötapaus – Päivitä sosiaalisen median viestit

Oletetaan tapahtuma, jossa yritys ylläpitää omaa sosiaalisen median verkkosivustoaan, jossa tuhannet käyttäjät julkaisevat aktiivisesti viestejä ja tiloja. He ovat havainneet, että Redis-listat ovat sopivia ehdokkaita hoitamaan näitä virkoja ja tiloja, joissa lisäyksiä tapahtuu usein, ja Redis-listat suorittavat lisäyksen jatkuvassa ajassa.

Luodaan tietylle käyttäjätunnukselle 100 Redis-lista, jota käytetään kyseisen käyttäjän viestien ja tilaviestien tallentamiseen. Käytämme LPUSH-komentoa lisätäksemme joitain valeviestejä ja tilaviestejä käyttäjätunnukselle 100.

LPUSH social-media:user:100 '2022-08-01:Hyvä päivä aloittaa.'
LPUSH social-media:user:100 '2022-08-05:Aloitti uuden työpaikan linuxhintillä'
LPUSH social-media:user:100 '2022-08-06:Upea bile tänään'
LPUSH social-media:user:100 '2022-08-07:Huono päivä!!!'

Lähtö

Oletetaan, että käyttäjä, jonka käyttäjätunnus on 100, päivittää jonkin vanhoista viesteistään. Oletetaan, että hänen lähettämänsä kolmas viesti kaipaa korjausta. LSET-komento voi saavuttaa tämän helposti, kuten seuraavassa esitetään.

Koska kolmas elementti on indeksissä 2 Päästä. Päivitämme sen seuraavasti:

LSET social-media:user:100 2 'Aloitti uuden roolin kirjoittajana LinuxHintissä'

Lähtö

Kuten odotettiin, komento suoritettiin onnistuneesti ja toisen indeksin elementti päivitettiin. Tarkastellaanpa listaa uudelleen seuraavasti:

Voimme tehdä saman määrittämällä indeksin hännästä seuraavasti:

LSET social-media:user:100 -2 'Aloitti uuden roolin kirjoittajana LinuxHintissä'

Kuten odotettiin, kolmas elementti on asetettu uuteen merkkijonoon 'Työ aloitettu LinuxHINT:ssä'.

Jos määrität indeksin, joka on alueen ulkopuolella, se aiheuttaa virheen, kuten seuraavassa näkyy:

LSET social-media:user:100 6 'Työ aloitettu LinuxHINT:ssä'

Lähtö

Johtopäätös

LSET-komento asettaa tietyssä indeksissä olevan luetteloelementin tiettyyn avaimeen tallennetun Redis-luettelon tietylle elementille. Koska Redis-luettelon indeksit alkavat nollasta, se on ensimmäinen elementti. Hakemisto 1 on luettelon toinen elementti ja niin edelleen. Kuten mainittiin, hännästä alkavien elementtien indeksit voidaan määrittää käyttämällä negatiivisia lukuja, kuten -1 on viimeinen elementti, -2 on elementti ennen viimeistä ja niin edelleen. Aina kun ei-olemassa oleva indeksi välitetään, LSET-komento palauttaa virheilmoituksen. Lisäksi tämä komento palauttaa yksinkertaisen merkkijonotulosteen onnistuneen suorituksen jälkeen.