72 votes

Dumping de toutes les paires clé / valeur dans une base de données Redis

J'utilise un ORM appelé Ohm in Ruby qui fonctionne sur Redis et je suis curieux de savoir comment les données sont réellement stockées. Je me demandais s'il y avait moyen de lister toutes les clés / valeurs dans une base de données Redis.

Toute piste m'aidera beaucoup (je suis essentiellement bloquée dans un distributeur automatique). Merci d'avance!

Mettre à jour:
Une note pour ceux qui essaient avec Redis-cli, utilisez ceci:

 $ redis-cli keys
* (press * followed by Ctrl-D)
... (prints a list of keys and exits)
$
 

Merci @antirez et @hellvinz!

119voto

antirez Points 9894

Vous pouvez explorer le Redis dataset à l'aide de la "redis-cli' outil inclus dans le Redis distribution.

Juste le démarrage de l'outil, sans arguments, puis tapez les commandes pour explorer le jeu de données.

Par exemple, les TOUCHES de la liste de toutes les touches correspondant à un glob-style de motif, par exemple: les touches de fonction * vous allez en voir de toutes les clés disponibles.

Ensuite, vous pouvez utiliser le TYPE de commande pour vérifier de quel type est une clé donnée, si c'est une liste que vous pouvez récupérer les éléments à l'intérieur à l'aide de LRANGE maclé 0 -1, si C'est un Jeu que vous allez utiliser à la place SMEMBERS maclé et ainsi de suite. Vérifiez le Redis documentation pour une liste de toutes les commandes disponibles et comment il travaille.

31voto

N.Martignole Points 169

À partir de la ligne de commande, vous pouvez également utiliser la commande dump , disponible depuis Redis 2.6.0.

 redis-cli KEYS \* | xargs -n 1 redis-cli dump
 

(notez que cela fonctionne aussi avec la commande get des versions antérieures si cela ne vous dérange pas)

21voto

hellvinz Points 2394

Ajoutez simplement un exemple pratique de rubis à la réponse antirez (je n'oserai pas lui faire concurrence)

 irb(main):002:0> require 'rubygems'
=> true
irb(main):003:0> require 'redis'
=> true
irb(main):004:0> r = Redis.new
=> #<Redis:0x8605b64 @sock=#<TCPSocket:0x8605ab0>, @timeout=5, @port=6379, @db=0, @host="127.0.0.1">
irb(main):005:0> r.keys('*')
 

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