Cum să exportați cheile Redis ca CSV folosind CLI

Configurare noua (How To)

Situatie

Adesea, doriți să exportați date din redis ca csv. Redis-cli are un flag –csv, dar funcționează numai dacă doriți să exportați o singură cheie. Dar cu puțină magie în linia de comandă, puteți exporta orice număr de chei ca format CSV.

Solutie

Acest script va exporta câmpurile id, numele afișat, reputația și locația pentru toate hashe-urile începând cu utilizatori:*

redis-cli –scan –pattern users:* |\
grep -e “^users:[^:]*$” |\
awk ‘{print “hmget ” $0 ” id display_name reputation location”}’ |\
redis-cli –csv > users.csv
Utilizarea tastelor Scan to Select

Primul pas este să utilizați redis-cli cu steagurile –scan și –pattern pentru a selecta cheile de interes. Deci, pentru a selecta cheile care corespund utilizatorilor:*, veți rula comanda redis-cli –scan –pattern users:*.

Rețineți că redis permite numai modele de stil glob. Deci, utilizatorii:* vor potrivi utilizatori:1234 și, de asemenea, utilizatori:1234:favoriți. Dacă doriți mai mult control, îl puteți continua cu un grep și un regex.

redis-cli –scan –pattern utilizatori:* | grep -e ‘^utilizatori:[^:]*$’
Folosind AWK pentru a rula comenzi Redis

Pentru fiecare cheie selectată, trebuie să rulăm o comandă redis pentru a prelua datele pentru acea cheie. În cazul nostru, dorim să preluăm câmpuri dintr-un hash, așa că folosim comanda hmget. $0 din scriptul awk se referă la cheia pe care am selectat-o ​​anterior utilizând scanarea.

Ieșirea scriptului awk este transmisă către redis-cli. Fiecare comandă este executată, iar rezultatul este returnat ca CSV din cauza flagului –csv.

Tip solutie

Permanent

Voteaza

(7 din 10 persoane apreciaza acest articol)

Despre Autor

Leave A Comment?