Un set puede almacenar más de cuatro mil millones de miembros únicos. Operaciones principales establecidas como agregar y eliminar tener una complejidad de tiempo constante, que es muy eficiente. Cuando intente agregar un elemento existente a un conjunto, solo mantendrá una copia de ese elemento sin crear un nuevo elemento. Por lo tanto, no hay necesidad de agregar controles duplicados explícitos.
El comando 'smembers'
Hay varios comandos disponibles para operar en conjuntos de redis. Siempre es útil obtener todos los elementos almacenados en un conjunto. Por lo general, el comando 'smembers' se usa para recuperar elementos en un conjunto de redis.
Sintaxis
Smembers
Cada conjunto tiene una clave que actúa como referencia para la variedad de elementos.
Ejemplo: cuenta las vistas de la página de los usuarios únicos
Tomemos un ejemplo en el que su sitio web necesita contar las vistas que provienen de usuarios únicos. Por lo tanto, no cuenta con las vistas que provienen de la misma ID de usuario. Podemos usar un set para mantener a todos los usuarios únicos que visitan su sitio web.
Podemos usar el comando 'SADD' para crear un nuevo conjunto en una clave especificada y agregar algunos miembros.
Sadd Visitorids "Henry001"
Visitorios de Sadd "Jackma"
Visitorios de Sadd "Singh06"
Visitorios de Sadd "Robin"
Esto crearía un conjunto con la clave 'VisitorIds' con cuatro miembros, como se muestra en lo siguiente.
Ejecutemos el comando 'smembers' para verificar los miembros disponibles en el conjunto identificado por la clave 'VisitorIds'.
Producción:
La matriz devuelta no contiene ninguna identificación de usuario duplicada porque el comando 'SADD' no permitió que los miembros duplicados. Por lo tanto, puede identificar a los usuarios únicos que visitaron su sitio web desde la salida del comando anterior.
Podemos usar el comando 'SADD' para agregar varios miembros a la vez sin ejecutar repetidamente el mismo comando.
Sadd NewVisitors "Singh06" "Henry001" "Jackma" "Robin"
Producción:
El mismo resultado está dado por el comando 'smembers'.
El comando 'sinter' se puede usar en lugar del comando 'smembers'. Por lo general, el comando 'sinter' devuelve la intersección de dos conjuntos. Pero puedes usarlo pasando una llave. Devolvería a los miembros del set almacenados en la clave pasada.
NEWVISITORES DE SINTER
Producción:
El rendimiento del comando 'smembers'
Este comando tiene una complejidad de tiempo lineal que puede representarse como o (n). Significa que cuando el recuento de miembros aumenta, el tiempo que lleva devolver la variedad de elementos aumentará.
El comando 'smembers' en un tipo no set
Por lo general, el comando 'smembers' solo funcionará con los tipos de datos establecidos. Planteará un error para otros tipos de datos. Creemos un 'hash' como se muestra en el siguiente.
HSET MYHASH ID 1 Nombre FunnyHash
Hemos creado un hash llamado 'myhash'. A continuación, pasaremos esta clave al comando 'smembers'.
Smembers myhash
Producción:
Como se esperaba, el comando devuelve un mensaje de error indicando que la clave no está conteniendo un valor de tipo de conjunto. Es un hash. Por lo tanto, el comando 'smembers' termina con el mensaje de error anterior. Entonces, este comando es específico para establecer tipos de datos.
Conclusión
Redis viene con varios tipos de datos incorporados. Admite conjuntos. Un set es una colección desordenada de cuerdas. No almacena miembros duplicados. Si intentamos insertar un elemento duplicado en un conjunto, mantendrá solo una copia de ese miembro. Las operaciones de conjunto de redis son muy eficientes. Las operaciones de agregar y eliminar tienen complejidad de tiempo constante. Podemos usar el comando 'smembers' para devolver a todos los miembros almacenados en un conjunto en una clave especificada. Esta operación tiene complejidad de tiempo lineal y sigue siendo muy útil en aplicaciones del mundo real.