Pon a prueba tus habilidades en todos nuestros servicios de Hosting y ¡obtén un 15% de descuento!

Utiliza el código al pagar:

Skills
04.11.2024

Uso de los comandos de exploración en Redis en Linux

Redis, un almacén de estructuras de datos en memoria de código abierto, es conocido por su velocidad y versatilidad como base de datos clave-valor. Una de sus potentes características es la capacidad de iterar incrementalmente a través de conjuntos de datos mediante comandos de exploración. Esto es particularmente útil cuando se trata de grandes conjuntos de datos, ya que permite una recuperación eficiente de los datos sin sobrecargar el servidor. Para los usuarios en un servidor Linux dedicado, el uso de comandos de escaneo en Redis puede mejorar el rendimiento de manejo de datos al permitir un procesamiento preciso y optimizado de los recursos del conjunto de datos. En este artículo, exploraremos cómo utilizar eficazmente los comandos de escaneo en Redis dentro de un entorno Linux, ofreciendo ejemplos detallados y las mejores prácticas para la gestión y recuperación de datos a escala..

¿Qué son los comandos de escaneo?

Los comandos de escaneo en Redis proporcionan una manera de iterar sobre claves, conjuntos, hashes y conjuntos ordenados de una manera no bloqueante. A diferencia del comando KEYS, que puede ser peligroso para grandes conjuntos de datos, ya que devuelve todas las claves coincidentes a la vez, los comandos de exploración devuelven un pequeño número de elementos a la vez. Esto minimiza el impacto en el rendimiento y permite la iteración incremental

Comandos de exploración de claves

  1. SCAN: Recorre las claves del espacio de claves.
  2. SSCAN: Recorre los elementos de un conjunto.
  3. HSCAN: Recorre los campos y valores de un hash.
  4. ZSCAN: Recorre los miembros y las puntuaciones de un conjunto ordenado.

Sintaxis básica de los comandos de exploración

Cada comando de escaneo tiene una sintaxis similar

SCAN cursor [MATCH pattern] [COUNT count]
  • cursor: Un número entero que representa la posición desde la que iniciar la exploración. Para iniciar una nueva búsqueda, utilice 0.
  • MATCH pattern: (opcional) Un patrón para filtrar las claves devueltas. Admite patrones de tipo glob.
  • COUNT cuenta: (opcional) Una pista para Redis sobre cuántos elementos devolver en cada iteración.

Instalación de Redis en Linux

Antes de sumergirnos en el uso de los comandos de escaneo, asegúrate de que Redis está instalado en tu sistema Linux. Para aquellos que utilicen un Servidor Dedicado Debian, la instalación de Redis es sencilla y puede mejorar la capacidad del servidor para manejar eficientemente el procesamiento de datos en memoria. A continuación se explica cómo instalar Redis en un sistema basado en Debian, garantizando un entorno estable y optimizado para operaciones de alto rendimiento.

Siguiendo estos pasos, configurará Redis de forma que aproveche los recursos y la estabilidad de su servidor Debian dedicado, ideal para tareas robustas de manejo de datos

###ATP_PRO_NOTR_2_ETIQUETA_DE_CÓDIGO_NOTR_ATP_PRO###

Para CentOS/RHEL, utilice

sudo yum install redis

Una vez instalado, inicie el servidor Redis

sudo systemctl start redis

Conexión a Redis

Abra su terminal y conéctese a su instancia de Redis utilizando la CLI de Redis

redis-cli

Ahora puedes ejecutar comandos de Redis en la CLI

Usando el comando SCAN

Ejemplo 1: SCAN Básico

Para recuperar todas las claves en la base de datos Redis, puedes usar

SCAN 0

Este comando devolverá un cursor y una lista de claves

Ejemplo 2: Uso de MATCH para filtrar claves

Si desea encontrar claves que coincidan con un patrón específico, como claves que empiecen por “user:”, puede utilizar

SCAN 0 MATCH username:*

Este comando sólo devuelve las claves que empiezan por “user:”

Ejemplo 3: Especificación de COUNT

Para indicar cuántas claves debe devolver Redis en cada iteración, puede especificar un recuento

SCAN 0 COUNT 10

Esto intentará devolver aproximadamente 10 claves. Tenga en cuenta que el número real devuelto puede ser menor

Ejemplo 4: Recorrer todas las claves

Para iterar a través de todas las claves en múltiples iteraciones, necesita mantener un registro del cursor devuelto. He aquí un sencillo ejemplo de script de shell:

cursor=0
while true; do
result=$(redis-cli SSCAN myset $cursor MATCH apple:*)
echo "$result" # Process the result as needed
cursor=$(echo "$result" | awk 'NR==1{print $1}') # Update the cursor
if [[ "$cursor" == "0" ]]; then
break  # Stop when the cursor is back to 0
fi
done

Uso del comando SSCAN

El comando SSCAN se utiliza para recorrer los elementos de un conjunto. Su sintaxis es similar a la de SCAN

SSCAN key cursor [MATCH pattern] [COUNT count]

Ejemplo de SSCAN

Paso 1: Crear un conjunto y añadir elementos

Creemos un conjunto llamado myset y añadámosle algunos elementos

SADD myset "apple"
SADD myset "banana"
SADD myset "cherry"
SADD myset "date"
SADD myset "elderberry"

Paso 2: Utilizar el comando SSCAN

Ahora que tenemos un conjunto llamado myset, podemos utilizar el comando SSCAN para recorrer sus elementos

  1. Comando SSCAN básico:Supongamos que tenemos un conjunto llamado “myset”. Para recorrer sus elementos
    SSCAN myset 0
  2. Usando MATCH:Para filtrar los elementos de un conjunto basándose en un patrón y añadir algunos elementos que incluyan la palabra “mango” y otras variaciones:
    SSCAN myset 0 MATCH mango:*
  3. Iterar a través de un conjunto:Puede utilizar un bucle para iterar a través de un conjunto :

#!/bin/bash
cursor=0
echo "Scanning through myset:"
while true; do
# Scan the set
result=$(redis-cli SSCAN myset $cursor)
# Print the elements returned by SSCAN
echo "$result"
# Update the cursor for the next iteration
cursor=$(echo "$result" | awk 'NR==1{print $1}')
# Break the loop if cursor is back to 0
if [[ "$cursor" == "0" ]]; then
break
fi
done

Ejecución del script

  1. Guarde el script como scan_myset.sh.
  2. Hágalo ejecutable
    chmod +x scan_myset.sh
  3. Ejecute el script
    ./scan_myset.sh

Uso de los comandos HSCAN y ZSCAN

Comando HSCAN

El comando HSCAN itera por los campos y valores de un hash

HSCAN key cursor [MATCH pattern] [COUNT count]

El comando HSCAN se utiliza para recorrer los campos y valores de un hash

Paso 1: Crear un hash y añadir campos

  1. Cree un hash llamado myhash y añádale algunos campos:
HSET myhash name "John Doe"
HSET myhash age "30"
HSET myhash occupation "Software Developer"
HSET myhash city "San Francisco"
HSET myhash country "USA"

Paso 2: Utilizar HSCAN para recorrer el hash

  1. Utilice el comando HSCAN para recorrer los campos de myhash:
HSCAN myhash 0

Comando ZSCAN

ZSCAN es un comando de Redis utilizado para iterar a través de los miembros de un conjunto ordenado de forma incremental. Permite recuperar miembros junto con sus puntuaciones asociadas de forma eficiente y sin bloqueos. Este comando es especialmente útil para trabajar con grandes conjuntos ordenados en los que no resulta práctico obtener todos los miembros a la vez. El comando ZSCAN recorre los miembros y las puntuaciones de un conjunto ordenado

ZSCAN key cursor [MATCH pattern] [COUNT count]

Paso 1: Crear un conjunto ordenado y añadir miembros

Creemos un conjunto ordenado llamado mysortedset y añadamos algunos miembros con puntuaciones

ZADD mysortedset 1 "apple"
ZADD mysortedset 2 "banana"
ZADD mysortedset 3 "cherry"

Comando ZSCAN básico:Para empezar a escanear el conjunto ordenado, utilice

ZSCAN mysortedset 0

Paso 2: Uso de MATCH para filtrar miembros (opcional)

Si desea filtrar los miembros devueltos por ZSCAN, puede utilizar la opción MATCH. Por ejemplo, para encontrar los miembros que contienen la letra “e”, puede ejecutar

ZSCAN mysortedset 0 MATCH *e*

Prácticas recomendadas para el uso de comandos de exploración

  1. Utilice SCAN en lugar de KEYS: Evite utilizar el comando KEYS en producción, ya que puede bloquear el servidor. Utilice SCAN para la iteración sin bloqueo.
  2. Combine con MATCH y COUNT: Utilice las opciones MATCH y COUNT para mejorar el rendimiento y limitar el conjunto de resultados.
  3. Maneje grandes conjuntos de datos: Cuando se trate de grandes conjuntos de datos, procese las claves por lotes utilizando cursores para gestionar la memoria de forma eficaz.
  4. Pruebe en desarrollo: Pruebe siempre su lógica de escaneo en un entorno de desarrollo para asegurarse de que se comporta como se espera antes de desplegarla en producción.

Conclusión

El uso de los comandos de escaneo en Redis le permite iterar eficientemente a través de grandes conjuntos de datos en un entorno Linux sin sobrecargar su servidor. Entendiendo como usar SCAN, SSCAN, HSCAN, y ZSCAN, puedes gestionar y recuperar datos de Redis de forma efectiva. Estos comandos son esenciales para construir aplicaciones escalables que requieren procesamiento de datos en tiempo real. Para más información y uso detallado, consulta la documentación oficial de Redis y experimenta con estos comandos en tu entorno Redis

Pon a prueba tus habilidades en todos nuestros servicios de Hosting y ¡obtén un 15% de descuento!

Utiliza el código al pagar:

Skills