sql >> Base de Datos >  >> NoSQL >> Redis

Cómo exportar claves Redis como CSV usando CLI

A menudo, desea exportar datos de redis como csv. El redis-cli tiene un --csv bandera, pero solo funciona si desea exportar una sola clave. Pero con un poco de magia en la línea de comandos, puede exportar cualquier cantidad de claves en formato CSV.

Este script exportará los campos id, nombre para mostrar, reputación y ubicación para todos los valores hash que comiencen con users:*

Uso de Scan to Select Keys

El primer paso es usar redis-cli con --scan y --pattern banderas para seleccionar las claves de interés. Entonces, para seleccionar claves que coincidan con los usuarios:*, ejecutará el comando redis-cli --scan --pattern users:* .

Tenga en cuenta que redis solo permite patrones de estilo global. Entonces users:* coincidirá con users:1234 y también coincidir con users:1234:favourites . Si desea más control, puede seguirlo con un grep y una expresión regular.

redis-cli --scan --pattern users:* | grep -e '^users:[^:]*$'

Uso de AWK para ejecutar comandos de Redis

Para cada clave que seleccionamos, debemos ejecutar un comando redis para obtener los datos de esa clave. En nuestro caso, queremos obtener campos de un hash, por lo que usamos hmget dominio. El $0 en el script awk se refiere a la clave que seleccionamos previamente usando scan.

La salida del script awk se canaliza a redis-cli. Cada comando se ejecuta y la salida se devuelve como un CSV debido a --csv bandera.

Personalizar este script

  1. 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.
  2. Puede ejecutar cualquier comando en lugar de hmget

Ver también

  • Renombrar campos en un hash
  • Cambie el nombre de varias teclas mediante el escaneo
  • 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!