Redis Set-Operationen

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 die Operationen mit Redis-Sets (Mengen) untersuchen, wobei der Schwerpunkt auf der Manipulation ungeordneter Sammlungen eindeutiger Strings liegt. Sie lernen, wie Sie mit dem Befehl SADD Elemente zu einem Set hinzufügen, Set-Vereinigungen mit SUNION durchführen, gemeinsame Elemente mit SINTER finden und Unterschiede zwischen Sets mit SDIFF identifizieren. Abschließend lernen Sie, wie Sie die Ergebnisse von Set-Operationen zur späteren Verwendung speichern.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL redis(("Redis")) -.-> redis/RedisGroup(["Redis"]) redis/RedisGroup -.-> redis/access_cli("Connect Using CLI") redis/RedisGroup -.-> redis/insert_set("Add Set Element") redis/RedisGroup -.-> redis/verify_set("Check Set Membership") redis/RedisGroup -.-> redis/view_set("List Set Members") subgraph Lab Skills redis/access_cli -.-> lab-552104{{"Redis Set-Operationen"}} redis/insert_set -.-> lab-552104{{"Redis Set-Operationen"}} redis/verify_set -.-> lab-552104{{"Redis Set-Operationen"}} redis/view_set -.-> lab-552104{{"Redis Set-Operationen"}} end

Elemente mit SADD zu einem Set hinzufügen

In diesem Schritt lernen Sie, wie Sie mit dem Befehl SADD Elemente zu einem Redis-Set (Menge) hinzufügen. Sets in Redis sind ungeordnete Sammlungen eindeutiger Strings. Das bedeutet, dass jedes Element in einem Set eindeutig sein muss und die Reihenfolge, in der Elemente dem Set hinzugefügt werden, nicht beibehalten wird.

Der Befehl SADD fügt einem Set ein oder mehrere Elemente hinzu. Wenn das angegebene Element bereits Mitglied des Sets ist, wird es ignoriert. Wenn das Set nicht existiert, wird ein neues Set mit dem/den angegebenen Element(en) erstellt.

Beginnen wir mit der Verbindung zum Redis-Server. Öffnen Sie Ihr Terminal und führen Sie den folgenden Befehl aus:

redis-cli

Dieser Befehl öffnet die Redis-Befehlszeilenschnittstelle (command-line interface).

Fügen wir nun einige Elemente zu einem Set namens my_set hinzu. Führen Sie den folgenden Befehl aus:

SADD my_set "apple" "banana" "cherry"

Dieser Befehl fügt die Strings "apple", "banana" und "cherry" dem Set my_set hinzu. Die Ausgabe ist eine Ganzzahl, die die Anzahl der Elemente darstellt, die dem Set erfolgreich hinzugefügt wurden. In diesem Fall sollte die Ausgabe 3 sein.

(integer) 3

Versuchen wir nun, ein Element hinzuzufügen, das bereits im Set vorhanden ist. Führen Sie den folgenden Befehl aus:

SADD my_set "apple"

Dieser Befehl versucht, den String "apple" dem Set my_set hinzuzufügen. Da "apple" jedoch bereits Mitglied des Sets ist, wird er ignoriert. Die Ausgabe ist 0, was anzeigt, dass keine neuen Elemente hinzugefügt wurden.

(integer) 0

Um zu überprüfen, ob die Elemente dem Set hinzugefügt wurden, können Sie den Befehl SMEMBERS verwenden. Führen Sie den folgenden Befehl aus:

SMEMBERS my_set

Dieser Befehl gibt eine Liste aller Mitglieder des Sets my_set zurück. Die Ausgabe sollte wie folgt aussehen:

1) "cherry"
2) "banana"
3) "apple"

Beachten Sie, dass die Reihenfolge der Elemente in der Ausgabe von der Reihenfolge abweichen kann, in der sie hinzugefügt wurden. Dies liegt daran, dass Sets ungeordnete Sammlungen sind.

Beenden Sie abschließend die Redis CLI:

exit

Es ist wichtig, die redis-cli zu beenden, damit Ihre Befehle protokolliert werden.

Sie haben nun erfolgreich Elemente mit dem Befehl SADD zu einem Redis-Set hinzugefügt. Dies ist eine grundlegende Operation für die Arbeit mit Sets in Redis und wird in den folgenden Schritten verwendet, um komplexere Operationen durchzuführen.

Vereinigung mit SUNION berechnen

In diesem Schritt lernen Sie, wie Sie die Vereinigung (Union) mehrerer Redis-Sets mit dem Befehl SUNION berechnen. Die Vereinigung von Sets ist ein neues Set, das alle eindeutigen Elemente enthält, die in einem der ursprünglichen Sets vorhanden sind.

Fügen wir zunächst einige Elemente zu einem neuen Set namens my_set2 hinzu. Verbinden Sie sich mit dem Redis-Server mit:

redis-cli

Fügen Sie nun Elemente zu my_set2 hinzu:

SADD my_set2 "banana" "grape" "orange"

Dieser Befehl fügt "banana", "grape" und "orange" zu my_set2 hinzu. Die Ausgabe sollte 3 sein.

(integer) 3

Nachdem wir nun zwei Sets haben, my_set (mit "apple", "banana", "cherry") und my_set2 (mit "banana", "grape", "orange"), können wir ihre Vereinigung mit dem Befehl SUNION berechnen. Führen Sie den folgenden Befehl aus:

SUNION my_set my_set2

Dieser Befehl gibt die Vereinigung von my_set und my_set2 zurück. Die Ausgabe ist eine Liste aller eindeutigen Elemente, die in einem der beiden Sets vorhanden sind:

1) "orange"
2) "grape"
3) "apple"
4) "banana"
5) "cherry"

Beachten Sie, dass "banana" nur einmal im Ergebnis vorkommt, obwohl es sowohl in my_set als auch in my_set2 vorhanden ist. Dies liegt daran, dass Sets nur eindeutige Elemente enthalten. Die Reihenfolge der Elemente im Ergebnis ist nicht garantiert.

Beenden Sie abschließend die Redis CLI:

exit

Der Befehl SUNION gibt die Vereinigung der Sets direkt an den Client zurück. Wenn Sie das Ergebnis in einem neuen Set speichern möchten, können Sie den Befehl SUNIONSTORE verwenden, der in diesem Lab nicht behandelt wird.

In diesem Schritt haben Sie gelernt, wie Sie die Vereinigung mehrerer Redis-Sets mit dem Befehl SUNION berechnen. Dies ist eine nützliche Operation, um Daten aus mehreren Sets zu einem einzigen Set zusammenzufassen.

Schnittmenge mit SINTER berechnen

In diesem Schritt lernen Sie, wie Sie die Schnittmenge (Intersection) mehrerer Redis-Sets mit dem Befehl SINTER berechnen. Die Schnittmenge von Sets ist ein neues Set, das nur die Elemente enthält, die in allen der ursprünglichen Sets vorhanden sind.

Verbinden Sie sich mit dem Redis-Server mit:

redis-cli

Wir haben bereits zwei Sets, my_set (mit "apple", "banana", "cherry") und my_set2 (mit "banana", "grape", "orange"). Berechnen wir ihre Schnittmenge mit dem Befehl SINTER. Führen Sie den folgenden Befehl aus:

SINTER my_set my_set2

Dieser Befehl gibt die Schnittmenge von my_set und my_set2 zurück. Die Ausgabe ist eine Liste aller Elemente, die in beiden Sets vorhanden sind:

1) "banana"

Beachten Sie, dass nur "banana" sowohl in my_set als auch in my_set2 vorhanden ist. Daher ist die Schnittmenge der beiden Sets ein Set, das nur "banana" enthält.

Fügen wir ein drittes Set namens my_set3 hinzu und fügen wir "banana" und "apple" hinzu.

SADD my_set3 "banana" "apple"

Die Ausgabe sollte 2 sein.

(integer) 2

Berechnen wir nun die Schnittmenge von my_set, my_set2 und my_set3. Führen Sie den folgenden Befehl aus:

SINTER my_set my_set2 my_set3

Dieser Befehl gibt die Schnittmenge aller drei Sets zurück. Die Ausgabe wird sein:

1) "banana"

Nur "banana" ist in allen drei Sets vorhanden.

Beenden Sie abschließend die Redis CLI:

exit

Der Befehl SINTER gibt die Schnittmenge der Sets direkt an den Client zurück. Wenn Sie das Ergebnis in einem neuen Set speichern möchten, können Sie den Befehl SINTERSTORE verwenden, den Sie später kennenlernen werden.

In diesem Schritt haben Sie gelernt, wie Sie die Schnittmenge mehrerer Redis-Sets mit dem Befehl SINTER berechnen. Dies ist eine nützliche Operation, um gemeinsame Elemente zwischen mehreren Sets zu finden.

Differenz mit SDIFF berechnen

In diesem Schritt lernen Sie, wie Sie die Differenz zwischen Redis-Sets mit dem Befehl SDIFF berechnen. Die Differenz zwischen Sets ist ein neues Set, das nur die Elemente enthält, die im ersten Set vorhanden sind, aber nicht in einem der nachfolgenden Sets.

Verbinden Sie sich mit dem Redis-Server mit:

redis-cli

Wir haben drei Sets: my_set (mit "apple", "banana", "cherry"), my_set2 (mit "banana", "grape", "orange") und my_set3 (mit "banana", "apple"). Berechnen wir die Differenz zwischen my_set und my_set2 mit dem Befehl SDIFF. Führen Sie den folgenden Befehl aus:

SDIFF my_set my_set2

Dieser Befehl gibt die Differenz zwischen my_set und my_set2 zurück. Die Ausgabe ist eine Liste aller Elemente, die in my_set, aber nicht in my_set2 vorhanden sind:

1) "apple"
2) "cherry"

"apple" und "cherry" sind in my_set, aber nicht in my_set2. "banana" ist in beiden Sets, daher ist es nicht im Ergebnis enthalten.

Berechnen wir nun die Differenz zwischen my_set und sowohl my_set2 als auch my_set3. Führen Sie den folgenden Befehl aus:

SDIFF my_set my_set2 my_set3

Dieser Befehl gibt die Differenz zwischen my_set und der Vereinigung (Union) von my_set2 und my_set3 zurück. Die Ausgabe wird sein:

1) "cherry"

"apple" ist in my_set, aber auch in my_set3, daher wird es ausgeschlossen. "banana" ist in my_set, aber auch in my_set2 und my_set3, daher wird es ausgeschlossen. Nur "cherry" ist ausschließlich in my_set.

Beenden Sie abschließend die Redis CLI:

exit

Der Befehl SDIFF gibt die Differenz der Sets direkt an den Client zurück. Wenn Sie das Ergebnis in einem neuen Set speichern möchten, können Sie den Befehl SDIFFSTORE verwenden (der in diesem Lab nicht behandelt wird).

In diesem Schritt haben Sie gelernt, wie Sie die Differenz zwischen Redis-Sets mit dem Befehl SDIFF berechnen. Dies ist eine nützliche Operation, um Elemente zu finden, die für ein bestimmtes Set eindeutig sind.

Ergebnisse mit SINTERSTORE speichern

In diesem Schritt lernen Sie, wie Sie das Ergebnis einer Schnittmengenoperation (Intersection Operation) in einem neuen Set mit dem Befehl SINTERSTORE speichern. Dies ist nützlich, wenn Sie weitere Operationen mit der Schnittmenge von Sets durchführen möchten, ohne sie jedes Mal neu zu berechnen.

Verbinden Sie sich mit dem Redis-Server mit:

redis-cli

Wir haben drei Sets: my_set (mit "apple", "banana", "cherry"), my_set2 (mit "banana", "grape", "orange") und my_set3 (mit "banana", "apple"). Im vorherigen Schritt haben wir die Schnittmenge dieser Sets berechnet und festgestellt, dass nur "banana" in allen dreien vorhanden war.

Speichern wir nun das Ergebnis der Schnittmenge von my_set, my_set2 und my_set3 in einem neuen Set namens intersection_set mit dem Befehl SINTERSTORE. Führen Sie den folgenden Befehl aus:

SINTERSTORE intersection_set my_set my_set2 my_set3

Dieser Befehl berechnet die Schnittmenge von my_set, my_set2 und my_set3 und speichert das Ergebnis in einem neuen Set namens intersection_set. Die Ausgabe ist eine ganze Zahl (Integer), die die Anzahl der Elemente im resultierenden Set darstellt. In diesem Fall sollte die Ausgabe 1 sein, da die Schnittmenge nur ein Element ("banana") enthält.

(integer) 1

Um zu überprüfen, ob die Schnittmenge korrekt gespeichert wurde, können Sie den Befehl SMEMBERS verwenden, um die Elemente des intersection_set anzuzeigen. Führen Sie den folgenden Befehl aus:

SMEMBERS intersection_set

Dieser Befehl gibt eine Liste aller Elemente des Sets intersection_set zurück. Die Ausgabe sollte sein:

1) "banana"

Dies bestätigt, dass die Schnittmenge von my_set, my_set2 und my_set3 erfolgreich im intersection_set gespeichert wurde.

Beenden Sie abschließend die Redis CLI:

exit

In diesem Schritt haben Sie gelernt, wie Sie das Ergebnis einer Schnittmengenoperation in einem neuen Set mit dem Befehl SINTERSTORE speichern. Dies ermöglicht es Ihnen, das Ergebnis der Schnittmenge in nachfolgenden Operationen wiederzuverwenden, ohne es neu berechnen zu müssen.

Zusammenfassung

In diesem Lab haben Sie gelernt, wie Sie einem Redis-Set mit dem Befehl SADD Elemente hinzufügen. Redis-Sets sind ungeordnete Sammlungen eindeutiger Zeichenketten (Strings), was bedeutet, dass jedes Element eindeutig sein muss und die Reihenfolge nicht beibehalten wird.

Der Befehl SADD fügt einem Set ein oder mehrere Elemente hinzu und ignoriert Duplikate. Das Lab demonstrierte das Hinzufügen von Elementen zu einem Set, das Beobachten des Rückgabewerts (Return Value), der die Anzahl der hinzugefügten Elemente angibt, und das Überprüfen des Set-Inhalts mit SMEMBERS. Die Ausgabereihenfolge von SMEMBERS kann aufgrund der ungeordneten Natur von Sets von der Einfügereihenfolge abweichen. Sie haben auch gelernt, wie Sie Set-Vereinigungen (Set Unions) mit SUNION berechnen, gemeinsame Elemente mit SINTER finden, Unterschiede zwischen Sets mit SDIFF identifizieren und die Ergebnisse von Set-Operationen zur späteren Verwendung mit SINTERSTORE speichern. Denken Sie daran, die redis-cli nach jedem Schritt zu beenden, um sicherzustellen, dass Ihre Befehle protokolliert werden.