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.