Redis no ofrece un comando para cambiar el nombre de las claves de forma masiva en Redis. Pero es bastante fácil crear un script usando redis-cli y algunas herramientas de línea de comandos.
Este comando cambiará el nombre de las claves que coincidan con usuarios:* a clientes*:
¿Cómo funciona el script?
- Primero, usamos
redis-cli --scan --pattern <pattern>
para obtener una lista de claves que deben ser renombradas. Como estamos usando el comando de escaneo, esto no bloquea el servidor redis. - A continuación, usamos awk para realizar la sustitución de cadenas y generar un nuevo nombre. Este es el
gsub(/users/,"customers", new_key)
en el comando bash - A continuación, usamos generar nuestro comando
rename <old key> <new key>
, pero para que sea eficiente, lo generamos en el formato del protocolo redis. - Finalmente, canalizamos el protocolo redis a redis-cli con
--pipe
opción. Esta es la forma más eficiente de enviar un flujo de comandos al servidor Redis.
Personalizar este script
- Si su servidor redis no está en localhost, deberá proporcionar el host, el puerto y la contraseña dos veces en el comando, básicamente cada vez que llamas a redis-cli.
- Tendrá que sustituir el patrón de exploración y la llamada gsub para satisfacer sus necesidades.
Ver también
- Renombrar campos en un hash
- Establecer caducidad en varias claves
- Eliminar teclas que coincidan con un patrón
- La GUI de RDBTools para Redis le permite obtener una vista previa de sus acciones masivas y proporciona una GUI poderosa para administrar datos en Redis. ¡Es una descarga gratuita!