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