Daar is geen commando voor, maar je kunt er wel een script voor schrijven.
U moet voor elke toets een "type"-opdracht uitvoeren:
> type <key>
en afhankelijk van het antwoord voer het volgende uit:
- voor "string":
get <key>
- voor "hash":
hgetall <key>
- voor "lijst":
lrange <key> 0 -1
- voor "set":
smembers <key>
- voor "zset":
zrange <key> 0 -1 withscores
Houd er rekening mee dat u voor hashes en gesorteerde sets de sleutels/scores en waarden krijgt.
Een mogelijke sh
implementatie:
#!/bin/sh -eu
keys=`redis-cli keys '*'`
if [ "$keys" ]; then
echo "$keys" | while IFS= read -r key; do
type=`echo | redis-cli type "$key"`
case "$type" in
string) value=`echo | redis-cli get "$key"`;;
hash) value=`echo | redis-cli hgetall "$key"`;;
set) value=`echo | redis-cli smembers "$key"`;;
list) value=`echo | redis-cli lrange "$key" 0 -1`;;
zset) value=`echo | redis-cli zrange "$key" 0 -1 withscores`;;
esac
echo "> $key ($type):"
echo "$value" | sed -E 's/^/ /'
done
fi
Maar let op:
Waarschuwing:overweeg
KEYS
als een commando dat alleen in productieomgevingen met uiterste zorg mag worden gebruikt. Het kan de prestaties verpesten wanneer het wordt uitgevoerd tegen grote databases. Deze opdracht is bedoeld voor foutopsporing en speciale bewerkingen, zoals het wijzigen van de lay-out van uw keyspace.
https://redis.io/commands/keys