Operaciones de Redis HyperLogLog

RedisRedisBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, explorarás las operaciones de Redis HyperLogLog. HyperLogLog es una estructura de datos potente en Redis que te permite estimar el número de elementos únicos en un conjunto, incluso con conjuntos de datos muy grandes. Esto se conoce como estimación de cardinalidad (cardinality estimation). Aprenderás a usar PFADD para agregar elementos, PFCOUNT para contar elementos únicos y PFMERGE para fusionar HyperLogLogs. Este laboratorio te proporcionará experiencia práctica en el seguimiento eficiente de usuarios únicos.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL redis(("Redis")) -.-> redis/RedisGroup(["Redis"]) redis/RedisGroup -.-> redis/access_cli("Connect Using CLI") redis/RedisGroup -.-> redis/count_list("Get List Length") subgraph Lab Skills redis/access_cli -.-> lab-552097{{"Operaciones de Redis HyperLogLog"}} redis/count_list -.-> lab-552097{{"Operaciones de Redis HyperLogLog"}} end

Agregar elementos con PFADD

En este paso, aprenderás cómo agregar elementos a un HyperLogLog usando el comando PFADD. Si el HyperLogLog no existe, PFADD lo creará automáticamente.

Entendiendo PFADD

El comando PFADD agrega uno o más elementos a un HyperLogLog.

Sintaxis:

PFADD key element [element ...]
  • key: El nombre del HyperLogLog.
  • element: El/los elemento(s) a agregar al HyperLogLog.

Ejemplo:

Primero, conéctate al servidor Redis usando el comando redis-cli en tu terminal:

redis-cli

Ahora, creemos un HyperLogLog llamado myhyperloglog y agreguemos algunos elementos a él.

PFADD myhyperloglog item1 item2 item3

Deberías ver la siguiente salida:

(integer) 1

La respuesta (integer) 1 indica que al menos un elemento fue agregado al HyperLogLog. No significa necesariamente que todos los elementos eran nuevos (únicos).

Recuerda salir de redis-cli después de ejecutar el comando:

exit

Práctica práctica (Hands-on Practice):

  1. Conéctate al servidor Redis usando redis-cli.
  2. Crea un HyperLogLog llamado users.
  3. Agrega los siguientes IDs de usuario (user IDs) al HyperLogLog users: user1, user2, user3, user4, user5.
  4. Sal de redis-cli.
PFADD users user1 user2 user3 user4 user5
exit

En el siguiente paso, aprenderás cómo estimar el número de usuarios únicos usando el comando PFCOUNT.

Contar elementos únicos con PFCOUNT

En este paso, aprenderás cómo usar el comando PFCOUNT para estimar el número de elementos únicos en un HyperLogLog.

Entendiendo PFCOUNT

El comando PFCOUNT devuelve una aproximación de la cardinalidad (número de elementos únicos) del conjunto observado por el HyperLogLog. Es importante recordar que HyperLogLog proporciona una estimación, no un conteo exacto.

Sintaxis:

PFCOUNT key
  • key: El nombre del HyperLogLog.

Ejemplo:

Continuando desde el paso anterior, estimemos el número de usuarios únicos en el HyperLogLog users.

Conéctate al servidor Redis usando redis-cli:

redis-cli

Ahora, usa el comando PFCOUNT:

PFCOUNT users

Deberías ver una salida similar a esta:

(integer) 5

La salida (integer) 5 indica que el HyperLogLog estima que hay aproximadamente 5 usuarios únicos en el HyperLogLog users.

Sal de redis-cli:

exit

Práctica práctica (Hands-on Practice):

  1. Conéctate al servidor Redis usando redis-cli.
  2. Usa el comando PFCOUNT para estimar el número de usuarios únicos en el HyperLogLog users.
  3. Sal de redis-cli.
PFCOUNT users
exit

Ahora, agreguemos más usuarios al HyperLogLog users, incluyendo un duplicado, y luego volvamos a contar.

redis-cli
PFADD users user3 user6 user7
PFCOUNT users
exit

En el siguiente paso, aprenderás cómo fusionar HyperLogLogs.

Fusionar HyperLogLogs con PFMERGE

En este paso, aprenderás cómo fusionar múltiples HyperLogLogs en un único HyperLogLog usando el comando PFMERGE. Esto es útil cuando tienes datos distribuidos en múltiples HyperLogLogs y quieres obtener una estimación del total de elementos únicos.

Entendiendo PFMERGE

El comando PFMERGE fusiona múltiples HyperLogLogs en un HyperLogLog de destino. El HyperLogLog de destino contendrá la unión de los elementos de todos los HyperLogLogs de origen.

Sintaxis:

PFMERGE destkey sourcekey [sourcekey ...]
  • destkey: El nombre del HyperLogLog de destino (donde se almacenará el resultado fusionado). Si no existe, se creará. Si existe, se sobrescribirá.
  • sourcekey: El/los nombre(s) de los HyperLogLogs de origen a fusionar.

Ejemplo:

Creemos un nuevo HyperLogLog llamado new_users y agreguemos algunos usuarios a él.

redis-cli
PFADD new_users user8 user9 user10
exit

Ahora, fusionemos los HyperLogLogs users y new_users en un nuevo HyperLogLog llamado all_users.

redis-cli
PFMERGE all_users users new_users

Deberías ver la siguiente salida:

OK

La respuesta OK indica que la operación de fusión fue exitosa.

Ahora, estimemos el número de usuarios únicos en el HyperLogLog all_users:

PFCOUNT all_users
exit

Deberías ver una salida similar a esta:

(integer) 7

La salida (integer) 7 indica que el HyperLogLog estima que hay aproximadamente 7 usuarios únicos en el HyperLogLog fusionado all_users.

Práctica práctica (Hands-on Practice):

  1. Conéctate al servidor Redis usando redis-cli.
  2. Usa el comando PFMERGE para fusionar los HyperLogLogs users y new_users en un nuevo HyperLogLog llamado all_users.
  3. Usa el comando PFCOUNT para estimar el número de usuarios únicos en el HyperLogLog all_users.
  4. Sal de redis-cli.
PFMERGE all_users users new_users
PFCOUNT all_users
exit

Esto completa el laboratorio sobre el uso de HyperLogLogs en Redis. Has aprendido cómo agregar elementos, contar elementos únicos y fusionar HyperLogLogs.

Resumen

En este laboratorio, has aprendido cómo usar el comando PFADD en Redis para agregar elementos a una estructura de datos HyperLogLog. El comando PFADD actualiza eficientemente el HyperLogLog para estimar la cardinalidad de un conjunto, sin almacenar los elementos en sí mismos. También has aprendido cómo usar PFCOUNT para estimar la cardinalidad de un HyperLogLog y PFMERGE para fusionar múltiples HyperLogLogs en uno solo. Esto proporciona una forma poderosa y eficiente de rastrear elementos únicos en grandes conjuntos de datos (datasets).