249 votes

Comment lister toutes les bases de données Redis ?

J'ai lancé cette commande pour accéder à mon redis serveur.

telnet 127.0.0.1 6379

Quelle est la commande pour afficher toutes mes bases de données ?

448voto

Didier Spezia Points 23333

Il n'y a pas de commande pour le faire (comme vous le feriez avec MySQL par exemple). Le nombre de bases de données Redis est fixe, et défini dans le fichier de configuration. Par défaut, vous avez 16 bases de données. Chaque base de données est identifiée par un numéro (et non un nom).

Vous pouvez utiliser la commande suivante pour connaître le nombre de bases de données :

CONFIG GET databases
1) "databases"
2) "16"

Vous pouvez utiliser la commande suivante pour lister les bases de données pour lesquelles certaines clés sont définies :

INFO keyspace
# Keyspace
db0:keys=10,expires=0
db1:keys=1,expires=0
db3:keys=1,expires=0

Veuillez noter que vous êtes censé utiliser le client "redis-cli" pour exécuter ces commandes, et non telnet. Si vous voulez utiliser telnet, alors vous devez exécuter ces commandes en utilisant le protocole Redis.

Par exemple :

*2
$4
INFO
$8
keyspace

$79
# Keyspace
db0:keys=10,expires=0
db1:keys=1,expires=0
db3:keys=1,expires=0

Vous pouvez trouver la description du protocole Redis ici : http://redis.io/topics/protocol

4 votes

Merci d'avoir présenté le protocole Redis en cours de route

3 votes

CONFIG GET ne fonctionne pas pour moi mais INFO keyspace fait

95voto

raphaelstolt Points 344

Ou vous pouvez simplement exécuter la commande suivante et vous verrez toutes les bases de données de l'instance Redis sans la mise à feu redis-cli :

$ redis-cli INFO | grep ^db
db0:keys=1500,expires=2
db1:keys=200000,expires=1
db2:keys=350003,expires=1

98 votes

Mais le même résultat pourrait être obtenu avec redis-cli INFO keyspace

13 votes

Downvoting parce que c'est fragile, est susceptible de se casser dans les futures versions, et parce qu'il y a une commande intégrée (comme mentionné) pour obtenir le même résultat.

1 votes

@RomanNewaza votre réponse devrait en fait être la réponse acceptée.

39voto

macno Points 349

Vous pouvez utiliser redis-cli INFO keyspace

localhost:8000> INFO keyspace
# Keyspace
db0:keys=7,expires=0,avg_ttl=0
db1:keys=1,expires=0,avg_ttl=0
db2:keys=1,expires=0,avg_ttl=0
db11:keys=1,expires=0,avg_ttl=0

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X