Retek LSET

Retek Lset



A Redis lista egy olyan adatstruktúra, amely karakterlánc-elemek sorozatát tartalmazza a beillesztési sorrendben. A linked listán alapul. Tehát egy elem beillesztése a fejnél és a faroknál állandó időben történik. A Redis listák egyetlen hátránya, hogy az elemek index alapján történő lekérdezése kissé költséges, ami az elérő elem indexével egyenesen arányos időt vesz igénybe. A linkelt lista alapú megvalósítás hátterében az áll, hogy az adatok beillesztése gyorsabb legyen egy nagyon hosszú elemlista esetén.

A Redis listák 0 alapú indexeléssel rendelkeznek. Az első elem a 0 th index; a második az 1-nél van utca index, és így tovább. A farok elemeinek elérése az indexekkel lehetséges negatív indexekkel, például az utolsó elem -1, az utolsó előtti elem -2, és így tovább.









A listaelemek tetszőleges indexnél beállíthatók az LSET paranccsal, amelyet a következő részben ismertetünk.



Az LSET parancs

Az LSET parancs egy elemet állít be a megadott kulcson tárolt Redis lista adott indexébe. A következő egyszerű szintaxissal rendelkezik:





LSET list_key index elem

lista_kulcs : A Redis lista kulcsa.

index : Az index, ahol be kell állítani egy elemet.



elem : A megadott indexen beállítandó karakterlánc elem.

Ez a parancs „OK” egyszerű karakterláncot ad vissza, ha az elem megfelelően van beállítva. Amikor olyan indexet talál, amely kívül esik a tartományon, az LSET parancs hibát ad vissza.

A Redis listák egyik leggyakoribb felhasználási módja a közösségi médiában megjelent bejegyzések és azok frissítéseinek tárolása az egyes felhasználók számára. Az LSET parancs fontos szerepet játszik itt, amint azt a következő részben tárgyaljuk.

Használati eset – Frissítse a közösségi média bejegyzéseit

Tételezzünk fel egy eseményt, ahol egy vállalat saját közösségi oldalt tart fenn, ahol több ezer felhasználó tesz közzé aktívan bejegyzéseket és állapotokat. Megállapították, hogy a Redis listák a megfelelő jelöltek ezeknek a posztoknak és státuszoknak a betöltésére, ahol gyakori beillesztés történik, és a Redis listák állandó időben hajtják végre a beillesztést.

Hozzon létre egy Redis listát egy adott 100-as felhasználói azonosítóhoz, amely az adott felhasználó bejegyzéseinek és állapotüzeneteinek tárolására szolgál. Az LPUSH parancsot fogjuk használni néhány álbejegyzés és állapotüzenet elhelyezésére a 100-as felhasználói azonosítóhoz.

LPUSH social-media:user:100 '2022-08-01:Szép nap az induláshoz.'
LPUSH social-media:user:100 '2022-08-05:Új állást kezdett a linuxhintnél'
LPUSH social-media:user:100 '2022-08-06:Nagyszerű buli ma'
LPUSH social-media:user:100 '2022-08-07:Rossz nap!!!'

Kimenet

Tegyük fel, hogy a 100-as felhasználói azonosítójú felhasználó frissíti valamelyik régi bejegyzését. Tegyük fel, hogy az általa közzétett harmadik bejegyzés némi javításra szorul. Az LSET paranccsal ezt könnyen meg lehet valósítani, ahogy a következőkben is látható.

Mivel a harmadik elem a Fej 2-es indexénél van. A következőképpen frissítjük:

LSET social-media:user:100 2 'Új írói szerepet kezdett a LinuxHintnél'

Kimenet

A vártnak megfelelően a parancs végrehajtása sikeresen megtörtént, és a második index eleme frissítve lett. Nézzük újra a listát a következőképpen:

Ugyanezt megtehetjük, ha megadjuk az indexet a farokból a következőképpen:

LSET social-media:user:100 -2 'Új szerepet kezdett íróként a LinuxHintnél'

Ahogy az várható volt, a harmadik elemet az új karakterláncra állítottuk be: „Job start at LinuxHINT”.

Ha olyan indexet ad meg, amely kívül esik a tartományon, az hibát jelez, amint az a következőkben látható:

LSET social-media:user:100 6 'A munka megkezdődött a LinuxHINT-nél'

Kimenet

Következtetés

Az LSET parancs egy listaelemet állít be egy megadott indexen a Redis lista adott kulcson tárolt adott eleméhez. Mivel a Redis lista indexei 0-tól kezdődnek, ez az első elem. Az 1. index a lista második eleme, és így tovább. Amint már említettük, a faroktól kezdődő elemek indexei negatív számokkal adhatók meg, például -1 az utolsó elem, -2 az utolsó előtti elem, és így tovább. Amikor egy nem létező indexet adunk át, az LSET parancs hibát ad vissza. Ezenkívül ez a parancs egy egyszerű karakterlánc-kimenetet ad vissza a sikeres végrehajtás során.