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
- 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.
- 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!