real time web analytics

Redis SCARD

“Los conjuntos de Redis son colecciones desordenadas de cadenas que no contienen duplicados. Estos son muy similares a Java HashSets, Python Sets, etc. Lo que es más importante, las operaciones fundamentales como agregar, eliminar y verificar la existencia de un miembro son altamente eficientes porque operan en una complejidad de tiempo O(1).

Miembros de un conjunto

Como se mencionó, los conjuntos de Redis contienen elementos de cadena únicos. Los conjuntos de Redis no aceptarán los elementos ya existentes y se ignorarán. Además, un solo conjunto puede contener hasta 4 mil millones de cadenas únicas.

La naturaleza del conjunto de Redis de contener miembros únicos es útil en varios casos de uso del mundo real.

  • Capacidad para realizar operaciones de conjuntos estándar como Unión, Intersección y Diferencia.
  • Seguimiento de visitantes únicos a un sitio web
  • Representar relaciones de entidad del mundo real

El comando SCARD

El comando SCARD, abreviatura de Set Cardinality, devuelve el número de miembros de un conjunto almacenado en una clave dada. Opera en complejidad de tiempo O(1), lo que significa que el tiempo que tarda en ejecutarse el comando SCARD no depende de la cantidad de miembros en el conjunto dado. Siempre toma un tiempo constante.

El comando SCARD tiene una sintaxis muy simple, como se muestra a continuación.

establecer_clave: La clave del conjunto Redis

Este comando devuelve un valor entero que es el número de miembros del conjunto.

Caso de uso: cuente los visitantes únicos de un sitio web

Suponga que una empresa de pizzas “YummyPizza” mantiene un sitio web llamado yummypizza.com donde la gente puede pedir pizza en línea. Para realizar un seguimiento de sus ventas y base de clientes, mantienen una base de datos de Redis para almacenar todos los visitantes únicos del sitio web cada mes.

Cada vez que un usuario visita el sitio web de YummyPizza, la identificación del usuario debe agregarse a la base de datos de Redis. Además, el mismo usuario no debe agregarse a la base de datos. Entonces, la estructura de datos ideal es el conjunto de Redis, donde los conjuntos solo almacenan miembros únicos.

Supongamos que cinco usuarios han visitado el sitio web y estos miembros se agregan a la base de datos de Redis, como se muestra a continuación.

SADD YummyPizzaVisitantes:Octubre John Mary Raza Stoinis Prince

Como era de esperar, se devolvió el número entero 5, lo que significa que los cinco miembros se agregan al conjunto almacenado en la clave “YummyPizzaVisitantes:Octubre.

Al final del día, los administradores de la empresa deben verificar la cantidad total de visitantes únicos al sitio web. Por lo tanto, se debe calcular la cardinalidad del conjunto. Afortunadamente, el comando SCARD discutido anteriormente es útil en este tipo de escenario.

Ejecutemos el comando SCARD en el conjunto almacenado en la tecla “YummyPizzaVisitantes:Octubre.

scard YummyPizzaVisitantes:octubre

El resultado es 5, lo que significa que hay cinco miembros únicos en el conjunto especificado. Este comando se ejecuta demasiado rápido. No importa cinco miembros o 50000 miembros; el tiempo de ejecución será constante.

Suponga que la clave de conjunto especificada no existe en la base de datos de Redis. Entonces, la salida será 0, como se muestra en el siguiente ejemplo. En este caso, vamos a especificar una clave que no está en la base de datos.

Conclusión

Para resumir, el conjunto de Redis es un candidato ideal para almacenar cadenas únicas. Como se discutió, lo más importante sobre el conjunto de Redis es que la mayoría de las operaciones de conjunto asociadas toman un tiempo constante para ejecutarse. El comando SCARD es uno de los comandos de conjunto más utilizados para calcular el número total de miembros del conjunto para un conjunto dado almacenado en una clave específica. No importa cuántos miembros del conjunto estén disponibles, este comando tarda un tiempo constante en proporcionar la salida. Como se muestra en el último ejemplo, si la clave establecida no existe, la salida será 0.

Leave a Comment