Il n'y a pas de commande pour cela, mais vous pouvez écrire un script pour le faire.
Vous devrez effectuer pour chaque touche une commande "type" :
> type <key>
et selon la réponse effectuer :
- pour "chaîne" :
get <key>
- pour "hachage" :
hgetall <key>
- pour "liste" :
lrange <key> 0 -1
- pour "set" :
smembers <key>
- pour "zset" :
zrange <key> 0 -1 withscores
Gardez à l'esprit que pour les hachages et les ensembles triés, vous obtiendrez les clés/scores et les valeurs.
Un sh
possible implémentation :
#!/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
Mais attention :
Attention :considérez
KEYS
comme une commande qui ne doit être utilisée dans les environnements de production qu'avec une extrême prudence. Cela peut nuire aux performances lorsqu'il est exécuté sur de grandes bases de données. Cette commande est destinée au débogage et aux opérations spéciales, telles que la modification de la disposition de votre espace de clés.
https://redis.io/commands/keys