sql >> Database >  >> NoSQL >> Redis

Redis-sleutels exporteren als CSV met behulp van CLI

Vaak wilt u gegevens uit redis exporteren als csv. De redis-cli heeft een --csv vlag, maar het werkt alleen als u een enkele sleutel wilt exporteren. Maar met een beetje magie op de commandoregel kun je een willekeurig aantal sleutels exporteren als een CSV-indeling.

Dit script exporteert de velden id, weergavenaam, reputatie en locatie voor alle hashes die beginnen met users:*

Scannen om te selecteren-toetsen gebruiken

De eerste stap is om redis-cli te gebruiken met de --scan en --pattern vlaggen om de gewenste toetsen te selecteren. Dus, om sleutels te selecteren die overeenkomen met gebruikers:*, voer je het commando redis-cli --scan --pattern users:* uit .

Merk op dat redis alleen glob-stijlpatronen toestaat. Dus users:* komt overeen met users:1234 en ook overeenkomen met users:1234:favourites . Als je meer controle wilt, kun je dit opvolgen met een grep en een regex.

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

AWK gebruiken om Redis-opdrachten uit te voeren

Voor elke sleutel die we hebben geselecteerd, moeten we een redis-opdracht uitvoeren om de gegevens voor die sleutel op te halen. In ons geval willen we velden uit een hash halen, dus gebruiken we de hmget opdracht. De $0 in het awk-script verwijst naar de sleutel die we eerder hebben geselecteerd met scan.

De uitvoer van het awk-script wordt doorgesluisd naar redis-cli. Elke opdracht wordt uitgevoerd en de uitvoer wordt geretourneerd als een CSV vanwege de --csv vlag.

Dit script aanpassen

  1. Als uw redis-server niet op localhost staat, moet u tweemaal de host, poort en wachtwoord opgeven in het commando, eigenlijk wanneer je redis-cli aanroept.
  2. Je kunt elk commando uitvoeren in plaats van hmget

Zie ook

  • De naam van velden in een hash wijzigen
  • Meerdere toetsen hernoemen met Scan
  • Vervaldatum instellen op meerdere sleutels
  • Sleutels verwijderen die overeenkomen met een patroon
  • Met de GUI van RDBTools voor Redis kunt u een voorbeeld van uw bulkacties bekijken en biedt een krachtige GUI om gegevens in Redis te beheren. Het is een gratis download!

  1. MongoDB-query $in met regex-array van elementen

  2. Vertraagde uitvoering / planning met Redis?

  3. Mangoest &uniek veld

  4. Afbeeldingen opslaan in een MongoDB-database