Ustaw skrzyżowanie
Zestaw to zbiór elementów takich jak liczby, litery lub obiekty rzeczywistego. Każdy z tych członków jest wyraźny lub unikalny dla danego zestawu. Tylko oni nie mogą zrobić wielu rzeczy. Stąd istnieją wymagania, aby relacje między dwoma lub więcej zestawami w celu wygenerowania znaczących spostrzeżeń. Jak wszyscy wiemy, liczby mają podstawowe operacje, takie jak dodanie, odejmowanie, mnożenie i podział. W ten sam sposób zestawy są wyposażone w cztery główne operacje: związek, skrzyżowanie, różnica i uzupełnienie.
W tym przewodniku skupimy się na poleceniu Redis, które działa na sortowanych zestawach, aby obliczyć przecięcie dwóch lub więcej z nich. Stąd ta sekcja wyjaśnia operator przecięcia ustawiony. Jak sama nazwa wskazuje, operacja przecięcia zestawu oblicza zestaw wspólnych elementów należących do danej listy zestawów.
Dany schemat Venna jest reprezentacją dwóch zestawów z skrzyżowaniem. Jest trzech członków, którzy odwiedzają obie strony A i B. Jeśli weźmiemy witrynę A i B odwiedzających jako zestaw A i ustawiamy B, wspomniane trzech członków nazywane są ustawionymi skrzyżowaniem zestawu A i Set B.
Redis obsługuje posortowaną strukturę danych ustawionych z pola z operacją ogólnego zastosowania, aby dodać, usunąć i zapytać o elementy. Ponadto Redis obsługuje bardziej zaawansowane operacje na sortowanych zestawach, takich jak skrzyżowania zestawu. W poniższej sekcji opisano polecenie Zinterstore, które pomaga w obliczeniu zestawu zestawu w Redis:
Polecenie Redis Zinterstore
Polecenie ZINTERSTORE działa na dwóch lub więcej sortowanych zestawach, aby obliczyć przecięcie tych. To polecenie tworzy nowy sortowany zestaw z przecięcia określonych zestawów.
Ponieważ elementy zestawu sortowanego Redis są powiązane z wartościami wyników, każdy z tych wyników jest zsumowany dla wspólnego elementu i przechowywane w zestawie docelowym, jak pokazano na poniższej ilustracji:
Składnia:
Poniżej znajduje się podstawowa składnia polecenia Zinterstore:
Zinterstore Destination_Set Number_of_Sets Set_key [set_key…] [Waga ciężaru [waga…]] [Aggregat suma | Min | Max]
Destination_Set: Klucz posortowanego zestawu, który utrzymuje przecięcie określonych sortowanych zestawów.
Number_of_sets: Liczba sortowanych zestawów, z którymi oblicza się przecięcie ustawione.
set_key: Klucz lub unikalny identyfikator sortowanego zestawu.
Wagi: Współczynnik mnożenia dla wyniku każdego elementu w zestawach źródłowych.
AGREGAT: Ta opcja określa sposób na agregowanie uzyskanych wyników na element na skrzyżowaniu.
Domyślnie bierze sumę wyników na element wśród podanych zestawów źródeł. Możliwe jest określenie minimalnych lub maksymalnych wyników na element w zestawach źródłowych, do których należy.
Zarówno wagi, jak i argumenty łączne są opcjonalne dla polecenia Zinterstore.
Polecenie Zinterstore zwraca wartość całkowitą, która jest liczbą członków w zestawie posortowanym docelowym pod numerem Destination_Set.
Przypadek użycia - Sprawdź wspólnych odwiedzających na wielu stronach internetowych z ich liczbą odwiedzających
Załóżmy scenariusz, w którym mamy dwie strony internetowe A i B. Aby uzyskać ogólne zdjęcie odwiedzających witrynę, musimy zapytać użytkowników, którzy odwiedzają zarówno witryny A i B. Ponadto mamy wymóg zliczenia liczby wizyt każdego członka.
Utwórzmy dwa zestawy, SETA i SETB, jak pokazano następująco:
Zadd seta 600 „John” 150 „Mary” 300 „Nick”
Zadd Setb 300 „Mary” 100 „Nick” 760 „Doe”
Możemy użyć polecenia ZinterScore, aby znaleźć przecięcie SETA i SETB. Idealnie byłoby, gdyby „Mary” i „Nick” powinny być skrzyżowaniem dwóch poprzednich zestawów:
Zinterstore CommonSiteVisitors 2 SETA SETB
W tym przykładzie użyliśmy CommonSiteVisitors jako klucz zestawu docelowego. Obowiązkowe jest określenie liczby zestawów, których używamy do obliczenia przecięcia. W tym przypadku jest to 2.
Zwrócona wartość to 2, co oznacza, że dwóch członków powinien być przechowywany w zestawie posortowanym docelowym. Sprawdźmy wynikowy zestaw posortowany CommonSiteVisitors Korzystanie z polecenia ZrangeByscore:
Zgodnie z oczekiwaniami członkowie „Nick” i „Mary” znajdują się w wynikającym z tego sortowanym zestawie z podsumowanymi wartościami wyników. W tym przykładzie członek „Nick” ma odpowiednio 300 i 100 wyników w SETA i SETB. Stąd przecięcie tych dwóch zestawów zsumowało odpowiednie wartości wyników dla „NICK”. To samo stało się z członkiem „Mary”.
Użyjmy współczynnika mnożenia 2 i 3 odpowiednio dla SETA i SETB:
Zinterstore CommonSiteVisitors 2 SETA SETB WAGSY 2 3
Wynik „NICK” jest obliczany przez pomnożenie odpowiednio 300 i 100 przez 2 i 3 i zsumowanie wyników. Stąd końcowy wynik powinien wynosić 900. Po tej samej procedurze następuje polecenie Zinterstore dla drugiego członka.
Domyślnie wyniki są agregowane poprzez zsumowanie ich, ale inne opcje są również dostępne. Możemy użyć argumentów min i maksymalnych, które utrzymują minimalny lub maksymalny wynik na element w uzyskanym sortowanym zestawie.
Zinterstore CommonSiteVisitors 2 SETA SETB Aggregate Max
Zgodnie z oczekiwaniami, maksymalna wartość wyniku dla obu członków wynosi 300 i jest przechowywana w zestawie posortowanym docelowym.
Wniosek
Podsumowując, polecenie Zinterstore służy do obliczenia przecięcia dla wielu dostarczonych zestawów posortowanych. Jest w stanie wydobyć skrzyżowanie i przechowywanie go w nowym sortowanym zestawie. Jak wspomniano wcześniej, wyniki na członek w zestawach źródłowych są domyślnie sumowane. Minimalne i maksymalne argumenty mogą być przekazywane do polecenia, w którym wyniki są agregowane przez minimalny lub maksymalny wynik w zestawach źródłowych. Jednocześnie możliwe jest określanie współczynnika mnożenia dla wyników każdego elementu w zestawie przecięcia. Ogólnie rzecz biorąc, polecenie ZinterStore jest niezawodne i owocne w obliczaniu zestawów ustawionych.