Redis Zinterstore

Redis Zinterstore

Establecer la intersección

Un conjunto es una colección de elementos como números, letras o objetos del mundo real. Cada uno de estos miembros es distinto o único para un conjunto dado. Ellos solo no pueden hacer muchas cosas. Por lo tanto, hay requisitos para hacer las relaciones entre dos o más conjuntos para generar ideas significativas. Como todos sabemos, los números tienen operaciones fundamentales como suma, resta, multiplicación y división. De la misma manera, los conjuntos vienen con cuatro operaciones principales: sindicato, intersección, diferencia y complemento.

En esta guía, nos centraremos en el comando redis que funciona en los conjuntos ordenados para calcular la intersección de dos o más de ellos. Por lo tanto, esta sección explica la operación de intersección establecida. Como su nombre indica, la operación de intersección del conjunto calcula el conjunto de elementos comunes que pertenecen a una lista dada de conjuntos.

El diagrama de Venn dado es una representación de dos conjuntos con una intersección. Hay tres miembros que visitan ambos sitios A y B. Si tomamos los visitantes del sitio A y B como el conjunto A y el conjunto B, los tres miembros mencionados se denominan la intersección establecida del conjunto A y el conjunto B.

Redis admite la estructura de datos establecida de conjunto fuera del cuadro con operaciones de uso general para agregar, eliminar y consultar los elementos. Además, Redis admite operaciones más avanzadas en conjuntos clasificados como intersecciones establecidas. La siguiente sección describe el comando Zinterstore que ayuda a calcular la intersección establecida en Redis:

Comando Redis Zinterstore

El comando Zinterstore funciona en dos o más conjuntos ordenados para calcular la intersección de aquellos. Este comando crea un nuevo conjunto ordenado desde la intersección de los conjuntos especificados.

Dado que los elementos establecidos por Redis están asociados con los valores de puntaje, cada uno de estos puntajes se suma por elemento común y se almacena en el conjunto de destino como se muestra en la siguiente ilustración:

Sintaxis:

La siguiente es la sintaxis básica del comando zinterstore:

Zinterstore Destination_set number_of_sets set_key [set_key ...] [peso de peso [peso ...]] [suma agregada | Min | Max]

Destination_set: La clave del conjunto ordenado que contiene la intersección de los conjuntos ordenados especificados.

Number_of_sets: El número de conjuntos ordenados con el que se calcula la intersección establecida.

set_key: La clave o el identificador único del conjunto ordenado.

Pesos: El factor de multiplicación para la puntuación de cada elemento en los conjuntos de fuente.

AGREGAR: Esta opción especifica una forma de agregar los puntajes resultantes por elemento en la intersección.

Por defecto, toma la suma de los puntajes por elemento entre los conjuntos de fuente dados. Es posible especificar los puntajes mínimos o máximos por elemento en los conjuntos de origen a los que pertenece.

Tanto los pesos como los argumentos agregados son opcionales para el comando zinterstore.

El comando zinterstore devuelve un valor entero que es el número de miembros en el destino ordenado establecido en Destino_set.

Caso de uso: inspeccione a los visitantes comunes en múltiples sitios web con sus recuentos de visitantes

Supongamos un escenario en el que tenemos dos sitios web A y B. Para obtener una imagen general de los visitantes del sitio, necesitamos consultar a los usuarios que visitan los sitios A y B. Además, tenemos el requisito de contar el número de visitas por cada miembro.

Creemos dos conjuntos, seta y setb, como se muestra en lo siguiente:

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

Podemos usar el comando zinterscore para averiguar la intersección del seta y setb. Idealmente, "Mary" y "Nick" deberían ser la intersección de los dos conjuntos anteriores:

Zinterstore CommonsiteVisitors 2 seta setb

En este ejemplo, usamos el commonsitevisitores como la clave del conjunto ordenado de destino. Es obligatorio especificar el número de conjuntos que usamos para calcular la intersección. En este caso, son 2.

El valor devuelto es 2, lo que significa que los dos miembros deben almacenarse en el conjunto ordenado de destino. Inspeccionemos el conjunto ordenado resultante commonsitevisitores Usando el comando zrangebyscore:

Como se esperaba, los miembros "Nick" y "Mary" están en el conjunto ordenado resultante con los valores de puntaje sumado. En este ejemplo, el miembro "Nick" tiene 300 y 100 puntajes en SETA y SETB, respectivamente. Por lo tanto, la intersección de estos dos conjuntos ha resumido los valores de puntaje relevantes para "Nick". Lo mismo ha sucedido con el miembro "Mary".

Usemos el factor de multiplicación 2 y 3 para SETA y SETB, respectivamente:

Zinterstore CommonsiteVisitors 2 seta setb pesos 2 3

La puntuación de "Nick" se calcula multiplicando 300 y 100 por 2 y 3, respectivamente y sumando los resultados. Por lo tanto, el puntaje final debe ser 900. El mismo procedimiento es seguido por el comando zinterstore para el otro miembro también.

Por defecto, los puntajes se agregan sumandolos, pero las otras opciones también están disponibles. Podemos usar los argumentos MIN y MAX que mantiene el puntaje mínimo o máximo por miembro en el conjunto ordenado resultante.

Zinterstore CommonsiteVisitors 2 Seta Setb Aggregate Max

Como se esperaba, el valor de puntaje máximo para ambos miembros es 300 y se mantiene en el conjunto ordenado de destino.

Conclusión

En resumen, el comando Zinterstore se usa para calcular la intersección para los múltiples conjuntos ordenados proporcionados. Es capaz de extraer la intersección y almacenarla en un nuevo set ordenado. Como se mencionó anteriormente, los puntajes por miembro en los conjuntos de origen se suman de forma predeterminada. Los argumentos mínimo y máximo se pueden pasar al comando donde los puntajes se agregan por la puntuación mínima o máxima en los conjuntos de origen. Al mismo tiempo, es posible especificar un factor de multiplicación para las puntuaciones de cada elemento en el conjunto de intersección. En general, el comando Zinterstore es confiable y fructífero al calcular las intersecciones establecidas.