Redis Zinterstore

Redis Zinterstore

Schnittpunkt setzen

Ein Set ist eine Sammlung von Elementen wie Zahlen, Buchstaben oder realen Objekten. Jedes dieser Mitglieder ist für einen bestimmten Satz unterschiedlich oder einzigartig. Sie allein können nicht viele Dinge tun. Daher gibt es Anforderungen, um die Beziehungen zwischen zwei oder mehr Sätzen zu stellen, um sinnvolle Erkenntnisse zu generieren. Wie wir alle wissen, haben Zahlen grundlegende Operationen wie Addition, Subtraktion, Multiplikation und Aufteilung. Auf die gleiche Weise sind die Sets mit vier Hauptoperationen ausgestattet: Gewerkschaft, Kreuzung, Unterschied und Komplement.

In diesem Leitfaden konzentrieren wir uns auf den Befehl Redis, der in den sortierten Sätzen arbeitet, um den Schnittpunkt von zwei oder mehr von ihnen zu berechnen. Daher erläutert dieser Abschnitt den festgelegten Kreuzungsvorgang. Wie der Name schon sagt, berechnet der Set -Intersection -Vorgang den Satz gemeinsamer Elemente einer bestimmten Liste der Sets.

Das gegebene Venn -Diagramm ist eine Darstellung von zwei Sätzen mit einer Kreuzung. Es gibt drei Mitglieder, die beide Websites A und B besuchen. Wenn wir die Site A- und B -Besucher als Set A und Set B nehmen, werden die genannten drei Mitglieder als festgelegte Kreuzung von Set A und Set B bezeichnet.

Redis unterstützt die sortierte Datenstruktur mit allgemeinem Umsatz, um die Elemente hinzuzufügen, zu entfernen und abzufragen. Darüber hinaus unterstützt Redis fortgeschrittenere Operationen bei sortierten Sets wie festgelegten Kreuzungen. Der folgende Abschnitt beschreibt den Befehl Zinterstore, der bei der Berechnung der festgelegten Kreuzung in Redis hilft:

Redis Zinterstore -Befehl

Der Befehl Zinterstore arbeitet auf zwei oder mehr sortierten Sätzen, um den Schnittpunkt dieser zu berechnen. Dieser Befehl erstellt einen neuen sortierten Satz aus der Kreuzung der angegebenen Sets.

Da die redis -sortierten festgelegten Elemente mit Bewertungswerten zugeordnet sind, wird jede dieser Bewertungen pro gemeinsames Element summiert und im Zielsatz wie in der folgenden Abbildung gezeigt gespeichert:

Syntax:

Das Folgende ist die grundlegende Syntax des Befehls Zinterstore:

Zinterstore destination_set number_of_sets set_key [set_key…] [Gewichtsgewicht [Gewicht…]] [Aggregate Sum | Min | Max]

destination_set: Der Schlüssel des sortierten Satzes, der den Schnittpunkt der angegebenen sortierten Sätze enthält.

number_of_sets: Die Anzahl der sortierten Sätze, gegen die die gesetzte Kreuzung berechnet wird.

set_key: Der Schlüssel oder eindeutige Kennung des sortierten Satzes.

Gewichte: Der Multiplikationsfaktor für die Punktzahl jedes Elements in den Quellsätzen.

AGGREGAT: Diese Option gibt eine Möglichkeit an, die resultierenden Bewertungen pro Element im Kreuzung zu aggregieren.

Standardmäßig nimmt es die Summe der Bewertungen pro Element unter den angegebenen Quellsätzen auf. Es ist möglich, die minimalen oder maximalen Bewertungen pro Element über die Quellensätze zu geben, zu denen es gehört, zu.

Sowohl die Gewichte als auch die aggregierten Argumente sind für den Befehl Zinterstore optional.

Der Befehl Zinterstore gibt einen Ganzzahlwert zurück destination_set.

Anwendungsfall - Überprüfen Sie die gemeinsamen Besucher auf mehreren Websites mit ihren Besucherzahlen auf mehreren Websites

Nehmen wir ein Szenario an, in dem wir zwei Websites A und B bekommen haben. Um ein Gesamtbild der Website -Besucher zu machen, müssen wir die Benutzer, die sowohl A- als auch B -Websites besuchen, abfragen. Darüber hinaus müssen wir die Anzahl der Besuche durch jedes Mitglied zählen.

Erstellen wir zwei Sätze, Seta und SetB, wie in Folgendes gezeigt:

Zadd Seta 600 "John" 150 "Mary" 300 "Nick"
Zadd Setb 300 "Mary" 100 "Nick" 760 "DOE"

Wir können den Befehl ZintersCore verwenden, um die Schnittstelle von Seta und SetB herauszufinden. Idealerweise sollten „Mary“ und „Nick“ der Schnittpunkt der beiden vorherigen Sätze sein:

Zinterstore Commonsitvissitors 2 seta setb

In diesem Beispiel haben wir die verwendet Commonsitvisitoren Als Schlüssel des Ziels sortierte SET. Es ist obligatorisch, die Anzahl der Sätze anzugeben, mit denen wir den Kreuzung berechnen können. In diesem Fall ist es 2.

Der zurückgegebene Wert ist 2, was bedeutet, dass die beiden Mitglieder im Zielsort aufbewahrt werden sollten. Lassen Sie uns das resultierende sortierte Set untersuchen Commonsitvisitoren Verwenden des Befehls zrangebyscore:

Wie erwartet befinden sich die Mitglieder „Nick“ und „Mary“ im resultierenden Sortierten mit den summierten Punktzahlwerten. In diesem Beispiel hat das Mitglied „Nick“ 300 bzw. 100 Punkte in Seta bzw. SetB. Daher hat der Schnittpunkt dieser beiden Sätze die relevanten Bewertungswerte für "Nick" zusammengefasst. Das gleiche ist mit dem Mitglied "Mary" passiert.

Verwenden wir den Multiplikationsfaktor 2 und 3 für SETA bzw. SETB:

Zinterstore Commonsitvissitors 2 seta setb Gewichte 2 3

Die Punktzahl von „Nick“ wird berechnet, indem 300 und 100 mit 2 bzw. 3 multipliziert und die Ergebnisse summiert werden. Daher sollte das Endergebnis 900 betragen. Auf demselben Vorgang folgt auch der Befehl Zinterstore für das andere Mitglied.

Standardmäßig werden die Bewertungen durch Summieren zusammengefasst, aber auch die anderen Optionen sind verfügbar. Wir können die Min- und Max -Argumente verwenden, die die minimale oder maximale Punktzahl pro Mitglied im resultierenden Sortiersatz halten.

Zinterstore Commonsitvissitors 2 seta setb aggregat max

Wie erwartet beträgt der Höchstwertwert für beide Mitglieder 300 und wird im Zielsort für das Ziel aufbewahrt.

Abschluss

Zusammenfassend wird der Befehl Zinterstore verwendet. Es kann die Kreuzung extrahieren und in einem neuen sortierten Set speichern. Wie bereits erwähnt, werden die Punktzahlen pro Mitglied über Quellsätze hinweg standardmäßig summiert. Die minimalen und maximalen Argumente können an den Befehl übergeben werden. Gleichzeitig ist es möglich, einen Multiplikationsfaktor für die Bewertungen jedes Elements im Kreuzungssatz anzugeben. Insgesamt ist der Befehl Zinterstore bei der Berechnung der festgelegten Kreuzungen zuverlässig und fruchtbar.