Rettich LSET

Rettich Lset



Eine Redis-Liste ist eine Datenstruktur, die eine Folge von Zeichenfolgenelementen in der Einfügereihenfolge enthält. Es basiert auf Linked List. Das Einfügen eines Elements am Kopf und am Ende wird also in konstanter Zeit durchgeführt. Der einzige Nachteil der Redis-Listen ist, dass das Abfragen von Elementen über einen Index etwas kostspielig ist, was Zeit in Anspruch nimmt, die direkt proportional zum Index des zugreifenden Elements ist. Der Grund für die auf verknüpften Listen basierende Implementierung besteht darin, das Einfügen von Daten für eine sehr lange Liste von Elementen zu beschleunigen.

Redis-Listen haben eine 0-basierte Indizierung. Das erste Element wird als 0 bezeichnet th Index; der zweite ist am 1 st Index und so weiter. Der Zugriff auf Endelemente mit den Indizes ist mit negativen Indizes möglich, z. B. ist das letzte Element als -1 indiziert, das vorletzte Element ist -2 und so weiter.









Die Listenelemente können mit dem LSET-Befehl, der im folgenden Abschnitt beschrieben wird, auf einen beliebigen Index gesetzt werden.



Der LSET-Befehl

Der LSET-Befehl legt ein Element am angegebenen Index einer Redis-Liste fest, die am angegebenen Schlüssel gespeichert ist. Es hat die folgende einfache Syntax:





LSET list_key-Indexelement

list_key : Der Schlüssel der Redis-Liste.

Index : Der Index, wo Sie ein Element setzen müssen.



Element : Das Zeichenfolgenelement, das am angegebenen Index festgelegt werden soll.

Dieser Befehl gibt eine einfache Zeichenfolge „OK“ zurück, wenn das Element richtig eingestellt wurde. Immer wenn er auf einen Index stößt, der außerhalb des Bereichs liegt, gibt der LSET-Befehl einen Fehler zurück.

Einer der häufigsten Anwendungsfälle der Redis-Listen ist das Speichern von Social-Media-Beiträgen und deren Aktualisierungen für einzelne Benutzer. Dabei spielt der LSET-Befehl eine wichtige Rolle, wie im folgenden Abschnitt erläutert wird.

Anwendungsfall – Social-Media-Beiträge aktualisieren

Nehmen wir eine Veranstaltung an, bei der ein Unternehmen seine eigene Social-Media-Website mit Tausenden von Benutzern unterhält, die aktiv Beiträge und Status posten. Sie haben festgestellt, dass die Redis-Listen der geeignete Kandidat sind, um diese Posten und Status zu besetzen, wo häufig Einfügungen stattfinden, und die Redis-Listen Einfügungen in konstanter Zeit durchführen.

Lassen Sie uns eine Redis-Liste für eine bestimmte Benutzer-ID 100 erstellen, die zum Speichern der Posts und Statusmeldungen dieses bestimmten Benutzers verwendet wird. Wir werden den LPUSH-Befehl verwenden, um einige Dummy-Posts und Statusmeldungen für die Benutzer-ID 100 zu platzieren.

LPUSH social-media:user:100 '2022-08-01: Schöner Tag für den Start.'
LPUSH social-media:user:100 '2022-08-05:Neuen Job bei linuxhint begonnen'
LPUSH social-media:user:100 '2022-08-06:Tolle Party heute'
LPUSH social-media:user:100 '2022-08-07:Schlechter Tag!!!'

Ausgabe

Angenommen, der Benutzer mit der Benutzer-ID 100 wird einen seiner alten Posts aktualisieren. Angenommen, der dritte Beitrag, den er gepostet hat, muss korrigiert werden. Der LSET-Befehl kann dies leicht erreichen, wie im Folgenden gezeigt wird.

Da das dritte Element bei Index 2 vom Kopf ist. Wir werden es wie folgt aktualisieren:

LSET social-media:user:100 2 „Neue Rolle als Autor bei LinuxHint begonnen“

Ausgabe

Wie erwartet wurde der Befehl erfolgreich ausgeführt und das Element am zweiten Index aktualisiert. Lassen Sie uns die Liste noch einmal wie folgt überprüfen:

Wir können dasselbe tun, indem wir den Index aus dem Schwanz wie folgt angeben:

LSET social-media:user:100 -2 „Neue Rolle als Autor bei LinuxHint begonnen“

Wie erwartet wurde das dritte Element auf den neuen String „Job started at LinuxHINT“ gesetzt.

Wenn Sie einen Index angeben, der außerhalb des zulässigen Bereichs liegt, wird ein Fehler ausgelöst, wie im Folgenden gezeigt:

LSET social-media:user:100 6 „Job gestartet bei LinuxHINT“

Ausgabe

Fazit

Der LSET-Befehl setzt ein Listenelement an einem bestimmten Index auf ein bestimmtes Element der Redis-Liste, die unter einem bestimmten Schlüssel gespeichert ist. Da die Indizes der Redis-Liste bei 0 beginnen, ist dies das erste Element. Index 1 ist das zweite Element der Liste und so weiter. Wie bereits erwähnt, können die Indizes der Elemente, beginnend am Ende, mit negativen Zahlen angegeben werden, z. B. -1 ist das letzte Element, -2 ist das Element vor dem letzten und so weiter. Immer wenn ein nicht vorhandener Index übergeben wird, gibt der LSET-Befehl einen Fehler zurück. Darüber hinaus gibt dieser Befehl eine einfache Zeichenfolgenausgabe über die erfolgreiche Ausführung zurück.