Ofta vill du exportera data från redis som en csv. Redis-cli har en --csv
flagga, men det fungerar bara om du vill exportera en enda nyckel. Men med lite kommandoradsmagi kan du exportera valfritt antal nycklar som ett CSV-format.
Det här skriptet kommer att exportera fälten id, visningsnamn, rykte och plats för alla hash som börjar med users:*
Använda Scan to Select-tangenter
Det första steget är att använda redis-cli med --scan
och --pattern
flaggor för att välja nycklar av intresse. Så för att välja nycklar som matchar användare:*, kör du kommandot redis-cli --scan --pattern users:*
.
Observera att redis endast tillåter glob-stilsmönster. Så users:*
kommer att matcha users:1234
och matchar även users:1234:favourites
. Om du vill ha mer kontroll kan du följa upp det med ett grep och ett regex.
redis-cli --scan --pattern users:* | grep -e '^users:[^:]*$'
Använda AWK för att köra Redis-kommandon
För varje nyckel vi valt måste vi köra ett redis-kommando för att hämta data för den nyckeln. I vårt fall vill vi hämta fält från en hash, så vi använder hmget
kommando. $0
i awk-skriptet hänvisar till nyckeln vi valde tidigare med scan.
Utdata från awk-skriptet skickas till redis-cli. Varje kommando exekveras och utdata returneras som en CSV på grund av --csv
flagga.
Anpassa detta skript
- Om din redis-server inte finns på localhost måste du ange värden, porten och lösenordet två gånger i kommandot, i princip när du anropar redis-cli.
- Du kan köra vilket kommando som helst istället för
hmget
Se även
- Byt namn på fält i en hash
- Byt namn på flera nycklar med Scan
- Ange utgångsdatum till flera nycklar
- Ta bort nycklar som matchar ett mönster
- RDBTools GUI för Redis låter dig förhandsgranska dina bulkåtgärder och tillhandahåller ett kraftfullt GUI för att hantera data i Redis. Det är en gratis nedladdning!