Redis
 sql >> Database >  >> NoSQL >> Redis

Come esportare chiavi Redis come CSV utilizzando CLI

Spesso si desidera esportare i dati da redis come CSV. Il redis-cli ha un --csv flag, ma funziona solo se vuoi esportare una singola chiave. Ma con un po' di magia da riga di comando, puoi esportare qualsiasi numero di chiavi in ​​formato CSV.

Questo script esporterà l'id dei campi, il nome visualizzato, la reputazione e la posizione per tutti gli hash che iniziano con users:*

Utilizzo di Scansione per selezionare chiavi

Il primo passo è usare redis-cli con --scan e --pattern flag per selezionare le chiavi di interesse. Quindi, per selezionare le chiavi corrispondenti a users:*, eseguirai il comando redis-cli --scan --pattern users:* .

Nota che redis consente solo modelli di stile glob. Quindi users:* corrisponderà a users:1234 e trova anche users:1234:favourites . Se vuoi un maggiore controllo, puoi seguirlo con un grep e un'espressione regolare.

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

Utilizzo di AWK per eseguire i comandi Redis

Per ogni chiave che abbiamo selezionato, dobbiamo eseguire un comando redis per recuperare i dati per quella chiave. Nel nostro caso, vogliamo recuperare i campi da un hash, quindi utilizziamo hmget comando. Il $0 nello script awk si riferisce alla chiave che abbiamo selezionato in precedenza utilizzando la scansione.

L'output dello script awk viene inviato tramite pipe a redis-cli. Ogni comando viene eseguito e l'output viene restituito come CSV a causa del --csv bandiera.

Personalizzazione di questo script

  1. Se il tuo server Redis non è su localhost, dovrai fornire l'host, la porta e la password due volte nel comando, praticamente ogni volta che chiami redis-cli.
  2. Puoi eseguire qualsiasi comando invece di hmget

Vedi anche

  • Rinomina i campi in un hash
  • Rinomina più chiavi utilizzando la scansione
  • Imposta Scadenza su più chiavi
  • Elimina le chiavi corrispondenti a uno schema
  • La GUI di RDBTools per Redis ti consente di visualizzare in anteprima le tue azioni in blocco e fornisce una potente GUI per gestire i dati in Redis. È un download gratuito!