Operaciones con Conjuntos en Redis

RedisBeginner
Practicar Ahora

Introducción

En este laboratorio, explorarás las operaciones de conjuntos de Redis, centrándote en la manipulación de colecciones no ordenadas de cadenas únicas. Aprenderás cómo agregar elementos a un conjunto usando el comando SADD, realizar uniones de conjuntos con SUNION, encontrar elementos comunes usando SINTER e identificar diferencias entre conjuntos con SDIFF. Finalmente, aprenderás cómo almacenar los resultados de las operaciones de conjuntos para su uso posterior.

Este es un Guided Lab, que proporciona instrucciones paso a paso para ayudarte a aprender y practicar. Sigue las instrucciones cuidadosamente para completar cada paso y obtener experiencia práctica. Los datos históricos muestran que este es un laboratorio de nivel principiante con una tasa de finalización del 97%. Ha recibido una tasa de reseñas positivas del 98% por parte de los estudiantes.

Añadir Elementos a un Conjunto con SADD

En este paso, aprenderás cómo agregar elementos a un conjunto de Redis usando el comando SADD. Los conjuntos (sets) en Redis son colecciones no ordenadas de cadenas únicas. Esto significa que cada elemento en un conjunto debe ser único, y el orden en que los elementos se agregan al conjunto no se conserva.

El comando SADD agrega uno o más miembros a un conjunto. Si el miembro especificado ya es miembro del conjunto, se ignora. Si el conjunto no existe, se crea un nuevo conjunto con los miembros especificados.

Comencemos conectándonos al servidor de Redis. Abre tu terminal y ejecuta el siguiente comando:

redis-cli

Este comando abrirá la interfaz de línea de comandos de Redis (Redis command-line interface).

Ahora, agreguemos algunos elementos a un conjunto llamado my_set. Ejecuta el siguiente comando:

SADD my_set "apple" "banana" "cherry"

Este comando agregará las cadenas "apple", "banana" y "cherry" al conjunto my_set. La salida será un entero que representa el número de elementos que se agregaron correctamente al conjunto. En este caso, la salida debería ser 3.

(integer) 3

Ahora, intentemos agregar un elemento que ya existe en el conjunto. Ejecuta el siguiente comando:

SADD my_set "apple"

Este comando intentará agregar la cadena "apple" al conjunto my_set. Sin embargo, dado que "apple" ya es miembro del conjunto, se ignorará. La salida será 0, lo que indica que no se agregaron nuevos elementos.

(integer) 0

Para verificar que los elementos se han agregado al conjunto, puedes usar el comando SMEMBERS. Ejecuta el siguiente comando:

SMEMBERS my_set

Este comando devolverá una lista de todos los miembros del conjunto my_set. La salida debería ser:

1) "cherry"
2) "banana"
3) "apple"

Ten en cuenta que el orden de los elementos en la salida puede ser diferente del orden en que se agregaron. Esto se debe a que los conjuntos son colecciones no ordenadas.

Finalmente, sal de la CLI de Redis (Redis CLI):

exit

Es importante salir de redis-cli para que tus comandos se registren.

Ahora has agregado correctamente elementos a un conjunto de Redis usando el comando SADD. Esta es una operación fundamental para trabajar con conjuntos en Redis, y se utilizará en los siguientes pasos para realizar operaciones más complejas.

Calcular la Unión con SUNION

En este paso, aprenderás cómo calcular la unión de múltiples conjuntos de Redis usando el comando SUNION. La unión de conjuntos es un nuevo conjunto que contiene todos los elementos únicos presentes en cualquiera de los conjuntos originales.

Primero, agreguemos algunos elementos a un nuevo conjunto llamado my_set2. Conéctate al servidor de Redis usando:

redis-cli

Ahora, agrega elementos a my_set2:

SADD my_set2 "banana" "grape" "orange"

Este comando agrega "banana", "grape" y "orange" a my_set2. La salida debería ser 3.

(integer) 3

Ahora que tenemos dos conjuntos, my_set (que contiene "apple", "banana", "cherry") y my_set2 (que contiene "banana", "grape", "orange"), podemos calcular su unión usando el comando SUNION. Ejecuta el siguiente comando:

SUNION my_set my_set2

Este comando devolverá la unión de my_set y my_set2. La salida será una lista de todos los elementos únicos presentes en cualquiera de los conjuntos:

1) "orange"
2) "grape"
3) "apple"
4) "banana"
5) "cherry"

Observa que "banana" aparece solo una vez en el resultado, aunque está presente tanto en my_set como en my_set2. Esto se debe a que los conjuntos solo contienen elementos únicos. El orden de los elementos en el resultado no está garantizado.

Finalmente, sal de la CLI de Redis (Redis CLI):

exit

El comando SUNION devuelve la unión de los conjuntos directamente al cliente. Si deseas almacenar el resultado en un nuevo conjunto, puedes usar el comando SUNIONSTORE, que no se cubre en este laboratorio.

En este paso, has aprendido cómo calcular la unión de múltiples conjuntos de Redis usando el comando SUNION. Esta es una operación útil para combinar datos de múltiples conjuntos en un solo conjunto.

Calcular la Intersección con SINTER

En este paso, aprenderás cómo calcular la intersección de múltiples conjuntos de Redis usando el comando SINTER. La intersección de conjuntos es un nuevo conjunto que contiene solo los elementos que están presentes en todos los conjuntos originales.

Conéctate al servidor de Redis usando:

redis-cli

Ya tenemos dos conjuntos, my_set (que contiene "apple", "banana", "cherry") y my_set2 (que contiene "banana", "grape", "orange"). Calculemos su intersección usando el comando SINTER. Ejecuta el siguiente comando:

SINTER my_set my_set2

Este comando devolverá la intersección de my_set y my_set2. La salida será una lista de todos los elementos que están presentes en ambos conjuntos:

1) "banana"

Observa que solo "banana" está presente tanto en my_set como en my_set2. Por lo tanto, la intersección de los dos conjuntos es un conjunto que contiene solo "banana".

Agreguemos un tercer conjunto llamado my_set3 y agreguemos "banana" y "apple" a él.

SADD my_set3 "banana" "apple"

La salida debería ser 2.

(integer) 2

Ahora, calculemos la intersección de my_set, my_set2 y my_set3. Ejecuta el siguiente comando:

SINTER my_set my_set2 my_set3

Este comando devolverá la intersección de los tres conjuntos. La salida será:

1) "banana"

Solo "banana" está presente en los tres conjuntos.

Finalmente, sal de la CLI de Redis (Redis CLI):

exit

El comando SINTER devuelve la intersección de los conjuntos directamente al cliente. Si deseas almacenar el resultado en un nuevo conjunto, puedes usar el comando SINTERSTORE, del que aprenderás más adelante.

En este paso, has aprendido cómo calcular la intersección de múltiples conjuntos de Redis usando el comando SINTER. Esta es una operación útil para encontrar elementos comunes entre múltiples conjuntos.

Calcular la Diferencia con SDIFF

En este paso, aprenderás cómo calcular la diferencia entre conjuntos de Redis usando el comando SDIFF. La diferencia entre conjuntos es un nuevo conjunto que contiene solo los elementos que están presentes en el primer conjunto, pero no en ninguno de los conjuntos subsiguientes.

Conéctate al servidor de Redis usando:

redis-cli

Tenemos tres conjuntos: my_set (que contiene "apple", "banana", "cherry"), my_set2 (que contiene "banana", "grape", "orange") y my_set3 (que contiene "banana", "apple"). Calculemos la diferencia entre my_set y my_set2 usando el comando SDIFF. Ejecuta el siguiente comando:

SDIFF my_set my_set2

Este comando devolverá la diferencia entre my_set y my_set2. La salida será una lista de todos los elementos que están presentes en my_set pero no en my_set2:

1) "apple"
2) "cherry"

"apple" y "cherry" están en my_set pero no en my_set2. "banana" está en ambos conjuntos, por lo que no se incluye en el resultado.

Ahora, calculemos la diferencia entre my_set y tanto my_set2 como my_set3. Ejecuta el siguiente comando:

SDIFF my_set my_set2 my_set3

Este comando devolverá la diferencia entre my_set y la unión de my_set2 y my_set3. La salida será:

1) "cherry"

"apple" está en my_set pero también en my_set3, por lo que se excluye. "banana" está en my_set pero también en my_set2 y my_set3, por lo que se excluye. Solo "cherry" está exclusivamente en my_set.

Finalmente, sal de la CLI de Redis (Redis CLI):

exit

El comando SDIFF devuelve la diferencia de los conjuntos directamente al cliente. Si deseas almacenar el resultado en un nuevo conjunto, puedes usar el comando SDIFFSTORE (no se cubre en este laboratorio).

En este paso, has aprendido cómo calcular la diferencia entre conjuntos de Redis usando el comando SDIFF. Esta es una operación útil para encontrar elementos que son únicos para un conjunto en particular.

Almacenar Resultados con SINTERSTORE

En este paso, aprenderás cómo almacenar el resultado de una operación de intersección en un nuevo conjunto usando el comando SINTERSTORE. Esto es útil cuando deseas realizar más operaciones en la intersección de conjuntos sin tener que volver a calcularla cada vez.

Conéctate al servidor de Redis usando:

redis-cli

Tenemos tres conjuntos: my_set (que contiene "apple", "banana", "cherry"), my_set2 (que contiene "banana", "grape", "orange") y my_set3 (que contiene "banana", "apple"). En el paso anterior, calculamos la intersección de estos conjuntos y encontramos que solo "banana" estaba presente en los tres.

Ahora, almacenemos el resultado de la intersección de my_set, my_set2 y my_set3 en un nuevo conjunto llamado intersection_set usando el comando SINTERSTORE. Ejecuta el siguiente comando:

SINTERSTORE intersection_set my_set my_set2 my_set3

Este comando calculará la intersección de my_set, my_set2 y my_set3, y almacenará el resultado en un nuevo conjunto llamado intersection_set. La salida será un entero que representa el número de elementos en el conjunto resultante. En este caso, la salida debería ser 1, porque la intersección contiene solo un elemento ("banana").

(integer) 1

Para verificar que la intersección se ha almacenado correctamente, puedes usar el comando SMEMBERS para ver los miembros del intersection_set. Ejecuta el siguiente comando:

SMEMBERS intersection_set

Este comando devolverá una lista de todos los miembros del conjunto intersection_set. La salida debería ser:

1) "banana"

Esto confirma que la intersección de my_set, my_set2 y my_set3 se ha almacenado correctamente en el intersection_set.

Finalmente, sal de la CLI de Redis (Redis CLI):

exit

En este paso, has aprendido cómo almacenar el resultado de una operación de intersección en un nuevo conjunto usando el comando SINTERSTORE. Esto te permite reutilizar el resultado de la intersección en operaciones posteriores sin tener que volver a calcularla.

Resumen

En este laboratorio, aprendiste cómo agregar elementos a un conjunto de Redis usando el comando SADD. Los conjuntos de Redis (Redis sets) son colecciones no ordenadas de cadenas únicas, lo que significa que cada elemento debe ser único y el orden no se conserva.

El comando SADD agrega uno o más miembros a un conjunto, ignorando los duplicados. El laboratorio demostró cómo agregar elementos a un conjunto, observar el valor de retorno que indica el número de elementos agregados y verificar el contenido del conjunto usando SMEMBERS. El orden de salida de SMEMBERS puede diferir del orden de inserción debido a la naturaleza no ordenada de los conjuntos. También aprendiste cómo calcular uniones de conjuntos con SUNION, encontrar elementos comunes usando SINTER, identificar diferencias entre conjuntos con SDIFF y almacenar los resultados de las operaciones de conjuntos para su uso posterior con SINTERSTORE. Recuerda salir de redis-cli después de cada paso para asegurarte de que tus comandos se registren.