Redis Cero

Redis Cero
Los conjuntos de Redis son colecciones desordenadas de cuerdas que no contienen duplicados. Estos son muy similares a los hashsets Java, los sets de pitón, etc. Lo más importante, las operaciones fundamentales como agregar, eliminar y verificar la existencia de un miembro son altamente eficientes porque operan en O (1) complejidad del tiempo.

Miembros de un set

Como se mencionó, los conjuntos de redis contienen elementos de cadena únicos. Los elementos ya existentes no serán aceptados por los conjuntos de Redis y serán ignorados. Además, un solo conjunto puede tener hasta 4 mil millones de cuerdas únicas.

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

  • Capacidad para realizar operaciones establecidas estándar como unión, intersección y diferencia.
  • Seguimiento de visitantes únicos a un sitio web
  • Representar las relaciones de entidad del mundo real

El comando de cero

El comando SCARD, corto para la cardinalidad establecida, devuelve el número de miembros en un conjunto almacenado en una clave determinada. Funciona en o (1) complejidad del tiempo, lo que significa que el tiempo que toma el comando SCARD para ejecutar no se basa en el número de miembros en el conjunto dado. Siempre lleva un tiempo constante.

El comando SCARD tiene una sintaxis muy simple, como se muestra en lo siguiente.

SCARD SET_KEY

set_key: La clave del conjunto de redis

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

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

Suponga que una compañía de pizza "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 su base de clientes, mantienen una base de datos Redis para almacenar a todos los visitantes únicos del sitio web cada mes.

Cada vez que un usuario visita el sitio web de Yummypizza, se debe agregar la ID de usuario a la base de datos de Redis. Además, el mismo usuario no debe agregarse a la base de datos también. Entonces, la estructura de datos ideal es el conjunto 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 en lo siguiente.

Sadd Yummypizzavisitors: octubre John Mary Raza Stoinis Prince

Como se esperaba, el Integer 5 ha sido devuelto, lo que significa que los cinco miembros se agregan al conjunto almacenado en la clave "Yummypizzavisitores: octubre."

Al final del día, los administradores de la compañía deben verificar el número total de visitantes únicos al sitio web. Entonces, la cardinalidad establecida debe calcularse. Afortunadamente, el comando de cero previamente discutido es útil en este tipo de escenario.

Ejecutemos el comando Scard en el conjunto almacenado en la tecla "Yummypizzavisitores: octubre."

SCARD YUMMYPIZZAVISITERS: octubre

La salida es 5, lo que significa que cinco miembros únicos están 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 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.

cero inexistente

Conclusión

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