Einführung in Redis-Datenstrukturen

RedisRedisBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab werden Sie grundlegende Redis-Datenstrukturen erkunden und lernen, wie Sie mit dem Befehlszeilentool redis-cli mit ihnen interagieren können. Der Schwerpunkt des Labs liegt auf praktischen Übungen, die Ihnen helfen zu verstehen, wie Sie Daten in Redis speichern und abrufen können.

Sie beginnen mit der Arbeit mit Strings (Zeichenketten) und lernen, wie Sie String-Werte setzen (set), abrufen (get), auf Existenz prüfen (check for existence) und löschen (delete). Anschließend gehen Sie zu Listen (Lists) über und verwenden Befehle wie LPUSH und LRANGE. Als Nächstes verwalten Sie Mengen (Sets) mit SADD und SMEMBERS. Abschließend erkunden Sie Hashes mit HSET und HGET. Diese praktische Erfahrung wird Ihnen eine solide Grundlage für die Verwendung von Redis in verschiedenen Anwendungen bieten.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL redis(("Redis")) -.-> redis/RedisGroup(["Redis"]) redis/RedisGroup -.-> redis/access_cli("Connect Using CLI") redis/RedisGroup -.-> redis/store_string("Set String Value") redis/RedisGroup -.-> redis/fetch_string("Get String Value") redis/RedisGroup -.-> redis/remove_key("Delete Single Key") redis/RedisGroup -.-> redis/add_left("Push List Left") redis/RedisGroup -.-> redis/fetch_range("Get List Range") redis/RedisGroup -.-> redis/insert_set("Add Set Element") redis/RedisGroup -.-> redis/view_set("List Set Members") subgraph Lab Skills redis/access_cli -.-> lab-552078{{"Einführung in Redis-Datenstrukturen"}} redis/store_string -.-> lab-552078{{"Einführung in Redis-Datenstrukturen"}} redis/fetch_string -.-> lab-552078{{"Einführung in Redis-Datenstrukturen"}} redis/remove_key -.-> lab-552078{{"Einführung in Redis-Datenstrukturen"}} redis/add_left -.-> lab-552078{{"Einführung in Redis-Datenstrukturen"}} redis/fetch_range -.-> lab-552078{{"Einführung in Redis-Datenstrukturen"}} redis/insert_set -.-> lab-552078{{"Einführung in Redis-Datenstrukturen"}} redis/view_set -.-> lab-552078{{"Einführung in Redis-Datenstrukturen"}} end

Arbeiten mit Strings für einfache Daten

In diesem Schritt werden wir untersuchen, wie man Redis zum Speichern und Abrufen einfacher String-Daten (Zeichenkettendaten) verwendet. Redis wird oft als Cache oder als einfacher Key-Value-Store (Schlüssel-Wert-Speicher) verwendet, und Strings sind der grundlegendste Datentyp, den es bietet.

Zuerst verbinden wir uns mit dem Redis-Server über das Befehlszeilentool redis-cli. Öffnen Sie ein Terminal in der LabEx VM (virtuelle Maschine). Sie sollten sich bereits im Verzeichnis ~/project befinden.

Geben Sie den folgenden Befehl ein, um sich mit dem Redis-Server zu verbinden:

redis-cli

Sie sollten eine Eingabeaufforderung sehen, die wie folgt aussieht:

127.0.0.1:6379>

Dies zeigt an, dass Sie jetzt mit dem Redis-Server verbunden sind.

Lassen Sie uns nun einen einfachen String-Wert setzen. Wir verwenden den Befehl SET. Der Befehl SET benötigt zwei Argumente: den Schlüssel (key) und den Wert (value). Setzen wir einen Schlüssel namens mykey auf den Wert Hello Redis:

SET mykey "Hello Redis"

Sie sollten die folgende Ausgabe sehen:

OK

Dies bedeutet, dass der Wert erfolgreich gesetzt wurde.

Lassen Sie uns nun den Wert mit dem Befehl GET abrufen. Der Befehl GET benötigt ein Argument: den Schlüssel. Rufen wir den Wert von mykey ab:

GET mykey

Sie sollten die folgende Ausgabe sehen:

"Hello Redis"

Dies bestätigt, dass wir erfolgreich einen String-Wert in Redis gespeichert und abgerufen haben.

Probieren wir ein weiteres Beispiel. Speichern wir diesmal eine Zahl als String.

SET counter 100
GET counter

Sie sollten sehen:

"100"

Redis behandelt dies als String, auch wenn es eine Zahl darstellt.

Sie können auch den Befehl EXISTS verwenden, um zu prüfen, ob ein Schlüssel existiert.

EXISTS mykey

Sie sollten sehen:

(integer) 1

Dies zeigt an, dass der Schlüssel mykey existiert. Wenn der Schlüssel nicht existiert, gibt der Befehl (integer) 0 zurück.

Löschen wir schließlich den Schlüssel mit dem Befehl DEL.

DEL mykey

Sie sollten sehen:

(integer) 1

Dies zeigt an, dass der Schlüssel mykey erfolgreich gelöscht wurde.

Wenn Sie nun versuchen, den Wert von mykey erneut abzurufen:

GET mykey

Sie sollten sehen:

(nil)

Dies bestätigt, dass der Schlüssel gelöscht wurde.

Denken Sie daran, redis-cli zu beenden, um sicherzustellen, dass Ihre Befehle protokolliert werden. Geben Sie Folgendes ein:

exit

Dadurch kehren Sie zur normalen Terminaleingabeaufforderung zurück.

Verwenden von Listen mit LPUSH und LRANGE

In diesem Schritt werden wir untersuchen, wie man Redis-Listen verwendet, um geordnete Datensammlungen zu speichern und abzurufen. Redis-Listen werden als verkettete Listen (linked lists) implementiert, was sie effizient macht, um Elemente vom Anfang oder Ende der Liste hinzuzufügen und zu entfernen. Wir werden uns auf die Befehle LPUSH und LRANGE konzentrieren.

Wir werden weiterhin das Befehlszeilentool redis-cli verwenden. Wenn Sie noch nicht verbunden sind, öffnen Sie ein Terminal in der LabEx VM und geben Sie Folgendes ein:

redis-cli

Lassen Sie uns nun eine Liste erstellen und mit dem Befehl LPUSH einige Elemente hinzufügen. LPUSH fügt Elemente links (am Kopf) der Liste hinzu. Der Befehl LPUSH benötigt zwei oder mehr Argumente: den Schlüssel (key) der Liste und den/die hinzuzufügenden Wert(e) (value(s)). Erstellen wir eine Liste namens mylist und fügen die Werte item1, item2 und item3 hinzu:

LPUSH mylist item1

Sie sollten die folgende Ausgabe sehen:

(integer) 1

Dies bedeutet, dass ein Element zur Liste hinzugefügt wurde. Der Rückgabewert von LPUSH ist die Länge der Liste nach der Operation.

Fügen wir nun die anderen Elemente hinzu:

LPUSH mylist item2
(integer) 2
LPUSH mylist item3
(integer) 3

Lassen Sie uns nun die Elemente der Liste mit dem Befehl LRANGE abrufen. LRANGE gibt einen Bereich (range) von Elementen aus der Liste zurück. Der Befehl LRANGE benötigt drei Argumente: den Schlüssel der Liste, den Startindex (start index) und den Endindex (end index). Die Indizes sind nullbasiert (zero-based), d. h. das erste Element befindet sich am Index 0. Um alle Elemente der Liste abzurufen, können wir den Startindex 0 und den Endindex -1 verwenden.

LRANGE mylist 0 -1

Sie sollten die folgende Ausgabe sehen:

1) "item3"
2) "item2"
3) "item1"

Beachten Sie, dass die Elemente in der umgekehrten Reihenfolge zurückgegeben werden, in der wir sie hinzugefügt haben, da LPUSH Elemente am Anfang der Liste hinzufügt.

Fügen wir der Liste noch ein paar Elemente hinzu:

LPUSH mylist item4
LPUSH mylist item5

Rufen wir nun die ersten 3 Elemente der Liste ab (Indizes 0 bis 2):

LRANGE mylist 0 2

Sie sollten sehen:

1) "item5"
2) "item4"
3) "item3"

Sie können auch negative Indizes verwenden, um auf Elemente vom Ende der Liste zuzugreifen. Um beispielsweise das letzte Element der Liste abzurufen, können Sie den Index -1 verwenden:

LRANGE mylist -1 -1

Sie sollten sehen:

1) "item1"

Denken Sie daran, redis-cli zu beenden, um sicherzustellen, dass Ihre Befehle protokolliert werden. Geben Sie Folgendes ein:

exit

Dadurch kehren Sie zur normalen Terminaleingabeaufforderung zurück.

Verwalten von Mengen (Sets) mit SADD und SMEMBERS

In diesem Schritt werden wir untersuchen, wie man Redis-Mengen (sets) verwendet, um ungeordnete Sammlungen eindeutiger Elemente zu speichern und zu verwalten. Redis-Mengen sind nützlich für Aufgaben wie das Verfolgen eindeutiger Besucher, das Speichern von Tags oder das Verwalten von Beziehungen zwischen Objekten. Wir werden uns auf die Befehle SADD und SMEMBERS konzentrieren.

Wir werden weiterhin das Befehlszeilentool redis-cli verwenden. Wenn Sie noch nicht verbunden sind, öffnen Sie ein Terminal in der LabEx VM und geben Sie Folgendes ein:

redis-cli

Lassen Sie uns nun eine Menge erstellen und mit dem Befehl SADD einige Elemente (members) hinzufügen. SADD fügt einer Menge ein oder mehrere Elemente hinzu. Der Befehl SADD benötigt zwei oder mehr Argumente: den Schlüssel (key) der Menge und das/die hinzuzufügende(n) Element(e) (member(s)). Erstellen wir eine Menge namens myset und fügen die Elemente member1, member2 und member3 hinzu:

SADD myset member1

Sie sollten die folgende Ausgabe sehen:

(integer) 1

Dies bedeutet, dass ein Element zur Menge hinzugefügt wurde. Der Rückgabewert von SADD ist die Anzahl der Elemente, die der Menge hinzugefügt wurden (ohne Elemente, die bereits vorhanden waren).

Fügen wir nun die anderen Elemente hinzu:

SADD myset member2
(integer) 1
SADD myset member3
(integer) 1

Lassen Sie uns nun die Elemente der Menge mit dem Befehl SMEMBERS abrufen. SMEMBERS gibt alle Elemente der Menge zurück. Der Befehl SMEMBERS benötigt ein Argument: den Schlüssel der Menge.

SMEMBERS myset

Sie sollten die folgende Ausgabe sehen (die Reihenfolge der Elemente kann variieren, da Mengen ungeordnet sind):

1) "member3"
2) "member2"
3) "member1"

Versuchen wir, ein doppeltes Element zur Menge hinzuzufügen:

SADD myset member1

Sie sollten sehen:

(integer) 0

Dies zeigt an, dass keine neuen Elemente hinzugefügt wurden, da member1 bereits in der Menge enthalten war.

Fügen wir der Menge noch ein paar Elemente hinzu:

SADD myset member4
SADD myset member5

Rufen wir nun alle Elemente erneut ab:

SMEMBERS myset

Sie sollten so etwas sehen wie:

1) "member5"
2) "member4"
3) "member3"
4) "member2"
5) "member1"

Die Reihenfolge kann unterschiedlich sein.

Denken Sie daran, redis-cli zu beenden, um sicherzustellen, dass Ihre Befehle protokolliert werden. Geben Sie Folgendes ein:

exit

Dadurch kehren Sie zur normalen Terminaleingabeaufforderung zurück.

Erkunden von Hashes mit HSET und HGET

In diesem Schritt werden wir untersuchen, wie man Redis-Hashes verwendet, um Sammlungen von Feld-Wert-Paaren (field-value pairs) zu speichern und abzurufen. Redis-Hashes sind nützlich, um Objekte mit mehreren Attributen darzustellen. Wir werden uns auf die Befehle HSET und HGET konzentrieren.

Wir werden weiterhin das Befehlszeilentool redis-cli verwenden. Wenn Sie noch nicht verbunden sind, öffnen Sie ein Terminal in der LabEx VM und geben Sie Folgendes ein:

redis-cli

Lassen Sie uns nun einen Hash erstellen und mit dem Befehl HSET einige Felder (fields) und Werte (values) hinzufügen. HSET setzt den Wert eines Feldes in einem Hash. Der Befehl HSET benötigt drei Argumente: den Schlüssel (key) des Hashes, das Feld und den Wert. Erstellen wir einen Hash namens myhash und setzen das Feld field1 auf den Wert value1:

HSET myhash field1 value1

Sie sollten die folgende Ausgabe sehen:

(integer) 1

Dies bedeutet, dass ein neues Feld zum Hash hinzugefügt wurde. Der Rückgabewert von HSET ist 1, wenn das Feld neu im Hash ist, und 0, wenn das Feld bereits existiert und der Wert aktualisiert wurde.

Fügen wir nun ein weiteres Feld hinzu:

HSET myhash field2 value2
(integer) 1

Lassen Sie uns nun den Wert eines Feldes mit dem Befehl HGET abrufen. HGET ruft den Wert eines Feldes in einem Hash ab. Der Befehl HGET benötigt zwei Argumente: den Schlüssel des Hashes und das Feld. Rufen wir den Wert von field1 in myhash ab:

HGET myhash field1

Sie sollten die folgende Ausgabe sehen:

"value1"

Dies bestätigt, dass wir erfolgreich ein Feld-Wert-Paar im Hash gespeichert und abgerufen haben.

Versuchen wir, den Wert eines vorhandenen Feldes zu aktualisieren:

HSET myhash field1 newvalue1

Sie sollten sehen:

(integer) 0

Dies zeigt an, dass das Feld bereits existierte und sein Wert aktualisiert wurde.

Rufen wir nun den Wert von field1 erneut ab:

HGET myhash field1

Sie sollten sehen:

"newvalue1"

Dies bestätigt, dass der Wert aktualisiert wurde.

Fügen wir dem Hash noch ein paar Felder hinzu:

HSET myhash field3 value3
HSET myhash field4 value4

Denken Sie daran, redis-cli zu beenden, um sicherzustellen, dass Ihre Befehle protokolliert werden. Geben Sie Folgendes ein:

exit

Dadurch kehren Sie zur normalen Terminaleingabeaufforderung zurück.

Zusammenfassung

In diesem Lab haben wir grundlegende Redis-Datenstrukturen erkundet, beginnend mit Strings (Zeichenketten). Wir haben gelernt, wie man sich mit redis-cli mit einem Redis-Server verbindet und dann den Befehl SET verwendet, um String-Werte zu speichern, die mit Schlüsseln (keys) verknüpft sind. Anschließend haben wir diese Werte mit dem Befehl GET abgerufen. Wir haben auch gesehen, wie Redis Zahlen behandelt, die als Strings gespeichert sind.

Darüber hinaus haben wir gelernt, Listen (Lists) mit LPUSH und LRANGE zu erstellen und zu bearbeiten, Mengen (Sets) mit SADD und SMEMBERS zu verwalten und Hashes mit HSET und HGET zu erkunden. Mit diesen Befehlen können Sie verschiedene Datentypen in Redis speichern und abrufen, was es zu einem vielseitigen Werkzeug für verschiedene Anwendungen macht. Denken Sie daran, redis-cli nach jedem Schritt zu beenden, um sicherzustellen, dass Ihre Befehle zur Überprüfung protokolliert werden.