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
- 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: 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
- 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
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 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
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
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: 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
Ejemplo de SSCAN
Paso 1: Crear un conjunto y añadir elementos
Creemos un conjunto llamado myset y añadámosle algunos elementos