sql >> Databasteknik >  >> NoSQL >> Redis

Hur man exporterar Redis-nycklar som CSV med CLI

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

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

  1. MongoDb:hitta djupt kapslade objekt med $lookup

  2. Hur gör jag en NOT IN-fråga i Mongo?

  3. Prestandajustering i MapReduce för prestandaförbättring

  4. MongoDB dra element från array två nivåer djup