Redis SCARD

Redis Scard



„Redis-Sets sind ungeordnete Sammlungen von Strings, die keine Duplikate enthalten. Diese sind den Java-HashSets, Python-Sets usw. sehr ähnlich. Am wichtigsten ist, dass grundlegende Operationen wie das Hinzufügen, Entfernen und Überprüfen der Existenz eines Mitglieds hocheffizient sind, da sie in O(1)-Zeitkomplexität ablaufen.“

Mitglieder eines Satzes

Wie bereits erwähnt, enthalten Redis-Sets eindeutige String-Elemente. Die bereits vorhandenen Artikel werden von Redis-Sets nicht akzeptiert und ignoriert. Darüber hinaus kann ein einziger Satz bis zu 4 Milliarden eindeutige Zeichenfolgen enthalten.









Die Eigenschaft des Redis-Sets, einzigartige Mitglieder zu halten, ist in mehreren realen Anwendungsfällen praktisch.



  • Fähigkeit, standardmäßige Mengenoperationen wie Vereinigung, Schnittmenge und Differenz auszuführen.
  • Verfolgen einzelner Besucher einer Website
  • Stellen Sie reale Entitätsbeziehungen dar

Der SCARD-Befehl

Der SCARD-Befehl, kurz für Set Cardinality, gibt die Anzahl der Mitglieder in einem Satz zurück, der bei einem bestimmten Schlüssel gespeichert ist. Es arbeitet in O(1)-Zeitkomplexität, was bedeutet, dass die Ausführungszeit des SCARD-Befehls nicht von der Anzahl der Mitglieder in der gegebenen Menge abhängt. Es dauert immer eine konstante Zeit.





Der SCARD-Befehl hat eine sehr einfache Syntax, wie im Folgenden gezeigt wird.

SCARD set_key

set_key: Der Schlüssel des Redis-Sets



Dieser Befehl gibt einen ganzzahligen Wert zurück, der die Anzahl der Elemente im Satz darstellt.

Anwendungsfall – Zählen Sie die eindeutigen Besucher einer Website

Angenommen, ein „YummyPizza“-Pizzaunternehmen unterhält eine Website namens yummypizza.com, auf der Leute Pizza online bestellen können. Um ihre Verkäufe und ihren Kundenstamm im Auge zu behalten, unterhalten sie eine Redis-Datenbank, in der jeden Monat alle eindeutigen Besucher der Website gespeichert werden.

Immer wenn ein Benutzer die YummyPizza-Website besucht, sollte die Benutzer-ID zur Redis-Datenbank hinzugefügt werden. Außerdem sollte derselbe Benutzer nicht auch zur Datenbank hinzugefügt werden. Die ideale Datenstruktur ist also das Redis-Set, in dem Sets nur eindeutige Mitglieder speichern.

Nehmen wir an, dass fünf Benutzer die Website besucht haben, und diese Mitglieder werden der Redis-Datenbank hinzugefügt, wie im Folgenden gezeigt.

SADD YummyPizzaBesucher:Oktober John Mary Raza Stoinis Prince

Wie erwartet wurde die Ganzzahl 5 zurückgegeben, was bedeutet, dass die fünf Elemente zu der Menge hinzugefügt werden, die unter Schlüssel gespeichert ist. YummyPizzaBesucher:Oktober.

Am Ende des Tages müssen Unternehmensadministratoren die Gesamtzahl der eindeutigen Besucher der Website überprüfen. Daher muss die Set-Kardinalität berechnet werden. Glücklicherweise erweist sich der zuvor besprochene SCARD-Befehl in einem solchen Szenario als nützlich.

Lassen Sie uns den SCARD-Befehl auf dem Satz ausführen, der unter der Taste „ gespeichert ist. YummyPizzaBesucher:Oktober.

scard YummyPizzaBesucher:Oktober

Die Ausgabe ist 5, was bedeutet, dass sich fünf eindeutige Mitglieder in der angegebenen Menge befinden. Dieser Befehl wird zu schnell ausgeführt. Es spielt keine Rolle, ob fünf oder 50000 Mitglieder; die Ausführungszeit ist konstant.

Angenommen, der angegebene Schlüsselsatz ist in der Redis-Datenbank nicht vorhanden. Dann ist die Ausgabe 0, wie im folgenden Beispiel gezeigt. In diesem Fall geben wir einen Schlüssel an, der sich nicht in der Datenbank befindet.

scard NonExistingKey

Fazit

Zusammenfassend lässt sich sagen, dass Redis Set ein idealer Kandidat zum Speichern eindeutiger Zeichenfolgen ist. Wie bereits erwähnt, ist das Wichtigste an Redis-Sets, dass die meisten zugehörigen Set-Operationen eine konstante Zeit für die Ausführung benötigen. Der SCARD-Befehl ist einer der am häufigsten verwendeten Satzbefehle, um die Gesamtzahl der Satzmitglieder für einen bestimmten Satz zu berechnen, der an einem bestimmten Schlüssel gespeichert ist. Unabhängig davon, wie viele Satzmitglieder verfügbar sind, benötigt dieser Befehl konstant Zeit, um die Ausgabe bereitzustellen. Wie im letzten Beispiel gezeigt, ist die Ausgabe 0, wenn der set-Schlüssel nicht existiert.