Récupération / Listing toutes les paires clé / valeur dans un Redis db
Question
J'utilise un ORM appelé Ohm en Ruby qui fonctionne sur le dessus de Redis et je suis curieux de savoir comment les données sont effectivement stockées. Je me demandais s'il y a moyen de liste toutes les clés / valeurs dans un Redis db.
Toute avance ira un long chemin pour me aider (je suis fondamentalement coincé atm). Merci à l'avance!
Mise à jour: Une note pour les autres d'essayer ce à l'aide Redis-cli, utilisez ceci:
$ redis-cli keys
* (press * followed by Ctrl-D)
... (prints a list of keys and exits)
$
Merci @antirez et @hellvinz!
La solution
Vous pouvez explorer l'ensemble de données Redis en utilisant l'outil de redis-cli
inclus dans la distribution Redis.
Il suffit de lancer l'outil sans arguments, puis tapez les commandes pour explorer l'ensemble de données.
Par exemple KEYS
liste toutes les clés correspondant à un motif de style glob, par exemple avec:. keys *
vous verrez toutes les clés disponibles
Ensuite, vous pouvez utiliser la commande TYPE
pour vérifier quel type est une clé donnée, si elle est une liste que vous pouvez récupérer les éléments à l'intérieur à l'aide LRANGE mykey 0 -1
. S'il est un jeu que vous allez utiliser à la place SMEMBERS mykey
et ainsi de suite. Consultez la documentation Redis pour obtenir une liste de toutes les commandes disponibles et comment ils fonctionnent.
Autres conseils
A partir de la ligne de commande, vous pouvez également utiliser la commande de la décharge , disponible depuis Redis 2.6.0
redis-cli KEYS \* | xargs -n 1 redis-cli dump
(notez que cela fonctionne aussi avec le get commande pour les versions antérieures si vous ne me dérange pas)
Il suffit d'ajouter un exemple de rubis pratique à la réponse antirez (je n'oserais rivaliser avec lui)
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('*')
J'ai fini ici parce que je cherchais comment sauvegarder toutes les clés / valeurs Redis. Si cela vous concerne, consultez cette article .
Utilisez redis-cli bgsave