Redis
 sql >> Base de données >  >> NoSQL >> Redis

Obtenir les clés et les valeurs Redis à l'invite de commande

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