Redis Scard

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

Mitglieder eines Sets

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

Die Natur des Redis-Sets, einzigartige Mitglieder zu halten, ist in mehreren realen Anwendungsfällen nützlich.

  • Fähigkeit, Standard -Set -Operationen wie Union, Kreuzung und Unterschied auszuführen.
  • Verfolgerung der einzigartigen Besucher auf einer Website
  • Reale Entitätsbeziehungen darstellen

Der Scard -Befehl

Der Scard -Befehl, kurz für die Set -Kardinalität, gibt die Anzahl der Mitglieder in einem Set zurück, der in einem bestimmten Schlüssel gespeichert ist. Es arbeitet in o (1) Zeitkomplexität, was bedeutet. Es braucht immer eine ständige Zeit.

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

Scard set_key

set_key: Der Schlüssel des Redis -Satzes

Dieser Befehl gibt einen Ganzzahlwert zurück, der die Anzahl der Mitglieder im Satz ist.

Anwendungsfall - Zählen Sie die eindeutigen Besucher auf einer Website

Nehmen Sie an, dass ein „Yummypizza“ -Pizza -Unternehmen eine Website namens Yummypizza unterhält.com, wo Leute Pizza online bestellen können. Um ihren Verkauf und ihre Kundenbasis zu verfolgen, führen sie eine Redis -Datenbank, um jeden Monat alle eindeutigen Besucher auf der Website zu speichern.

Wenn ein Benutzer die Yummypizza -Website besucht, sollte die Benutzer -ID zur Redis -Datenbank hinzugefügt werden. Außerdem sollte der gleiche Benutzer auch nicht zur Datenbank hinzugefügt werden. Die ideale Datenstruktur ist also der Redis -Satz, bei dem Sets nur einzigartige Mitglieder speichern.

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

Sadd Yummypizzavisitoren: Oktober John Mary Raza Stoinis Prince

Wie erwartet wurde die Ganzzahl 5 zurückgegeben, was bedeutet, dass die fünf Mitglieder dem bei Key gespeicherten Set hinzugefügt werdenYummypizzavisitoren: Oktober.

Am Ende des Tages müssen Unternehmen Administratoren die Gesamtzahl der eindeutigen Besucher auf der Website überprüfen. Die Set -Kardinalität muss also berechnet werden. Glücklicherweise ist der zuvor besprochene Scard -Befehl in dieser Art von Szenario nützlich.

Lassen Sie uns den Scard -Befehl auf dem bei der Schlüssel gespeicherten Set ausführenYummypizzavisitoren: Oktober.

Scard Yummypizzavisitoren: Oktober

Der Ausgang ist 5, was bedeutet, dass fünf einzigartige Mitglieder im angegebenen Satz sind. Dieser Befehl führt zu schnell aus. Es spielt keine Rolle von fünf Mitgliedern oder 50000 Mitgliedern. Die Ausführungszeit wird konstant sein.

Angenommen, der angegebene Set -Schlüssel gibt es in der Redis -Datenbank nicht. Dann beträgt der Ausgang 0, wie im folgenden Beispiel gezeigt. In diesem Fall werden wir einen Schlüssel angeben, der sich nicht in der Datenbank befindet.

Scard nicht vorhanden

Abschluss

Zusammenfassend ist Redis Set ein idealer Kandidat für die Aufbewahrung einzigartiger Zeichenfolgen. Wie bereits erwähnt, ist das Wichtigste an Redis -Set, dass die meisten der zugehörigen festgelegten Operationen eine ständige Ausführung in Anspruch nehmen. Der Scard -Befehl ist einer der am häufigsten verwendeten SET -Befehle, um die Gesamtzahl der festgelegten Mitglieder für einen bestimmten Satz zu berechnen, der in einer bestimmten Taste gespeichert ist. Unabhängig davon, wie viele festgelegte Mitglieder verfügbar sind, braucht dieser Befehl ständig, um die Ausgabe bereitzustellen. Wie im letzten Beispiel gezeigt, liegt die Ausgabe von 0, wenn die festgelegte Taste nicht vorhanden ist.