Uso de los comandos de scan 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 utilizando comandos de scan. 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 scan en Redis puede mejorar el rendimiento de manejo de datos al permitir el procesamiento preciso y optimizado de recursos de conjuntos de datos. En este artículo, vamos a explorar cómo utilizar eficazmente los comandos de scan 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 scan?
Los comandos de scan 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 scan 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 scan de claves
- SCAN: Recorre las claves del espacio de claves.
- SSCAN: Recorre los elementos de un conjunto.
- HSCAN: Recorre los campos y valores de un hash.
- ZSCAN: Itera a través de miembros y puntuaciones en un conjunto ordenado.
Sintaxis básica de los comandos de scan
Cada comando de scan tiene una sintaxis similar:
- cursor: Un número entero que representa la posición desde la que empezar a escanear. 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
Para CentOS/RHEL, utilice:
Una vez instalado, inicie el servidor Redis:
Conexión a Redis
Abra su terminal y conéctese a su instancia de Redis utilizando la CLI de Redis:
Ahora puedes ejecutar comandos Redis en la CLI.
Uso del comando SCAN
Ejemplo 1: SCAN Básico
Para recuperar todas las claves de la base de datos Redis, puede utilizar:
Este comando devolverá un cursor y una lista de claves.
Ejemplo 2: Uso de MATCH para filtrar teclas
Si desea encontrar claves que coincidan con un patrón específico, como claves que empiecen por “user:”, puede utilizar:
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:
Esto intentará devolver aproximadamente 10 claves. Tenga en cuenta que el número real devuelto puede ser menor.
Ejemplo 4: Iteración a través de todas las claves
Para iterar a través de todas las teclas en múltiples iteraciones, necesita hacer un seguimiento del cursor devuelto. He aquí un sencillo ejemplo de script de shell:
cursor=0
while true; do
result=$(redis-cli SSCAN myset $cursor MATCH manzana:*)
echo "$resultado" # Procesar el resultado según sea necesario
cursor=$(echo "$resultado" | awk 'NR==1{print $1}') # Actualizar el cursor
if [[ "$cursor" == "0" ]]; then
break # Parar cuando el cursor vuelva a ser 0
fi
hecho
Uso del comando SSCAN
El comando SSCAN se utiliza para recorrer los elementos de un conjunto. Su sintaxis es similar a la de SCAN:
Ejemplo de SSCAN
Paso 1: Crear un conjunto y añadir elementos
Creemos un conjunto llamado myset y añadámosle algunos elementos: