webentwicklung-frage-antwort-db.com.de

Abrufen / Auflisten aller Schlüssel / Wert-Paare in einer Redis-Datenbank

Ich verwende ein ORM namens Ohm in Ruby, das über Redis funktioniert, und bin gespannt, wie die Daten tatsächlich gespeichert werden. Ich habe mich gefragt, ob es eine Möglichkeit gibt, alle Schlüssel aufzulisten/Werte in einer Redis-Datenbank.

Jede Spur wird mir sehr helfen (im Grunde stecke ich in der Klemme). Danke im Voraus!

pdate:
Ein Hinweis für andere, die dies mit redis-cli ausprobieren:

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

Danke @antirez und @hellvinz!

68
Jagtesh Chadha

Sie können das Redis-Dataset mit dem in der Redis-Distribution enthaltenen Tool redis-cli Durchsuchen.

Starten Sie das Tool einfach ohne Argumente und geben Sie dann Befehle ein, um das Dataset zu durchsuchen.

Zum Beispiel listet KEYS alle Schlüssel auf, die einem Muster im Glob-Stil entsprechen, zum Beispiel mit: keys * Sehen Sie alle verfügbaren Schlüssel.

Anschließend können Sie mit dem Befehl TYPE prüfen, welcher Typ ein bestimmter Schlüssel ist. Wenn es sich um eine Liste handelt, können Sie die darin enthaltenen Elemente mit LRANGE mykey 0 -1 Abrufen. Wenn es sich um ein Set handelt, verwenden Sie stattdessen SMEMBERS mykey Und so weiter. In der Redis-Dokumentation finden Sie eine Liste aller verfügbaren Befehle und deren Funktionsweise.

116
antirez

Über die Befehlszeile können Sie auch den Befehl dump verwenden, der seit Redis 2.6.0 verfügbar ist

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

(Beachten Sie, dass dies auch mit dem Befehl get für frühere Versionen funktioniert, wenn Sie nichts dagegen haben.)

24
N.Martignole

Füge einfach ein praktisches Ruby Beispiel zu der Antirez-Antwort hinzu (ich werde es nicht wagen, mit ihm zu konkurrieren)

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('*')
20
hellvinz

Ich bin hier gelandet, weil ich gesucht habe, wie ich alle Schlüssel/Werte in redis sichern kann. Wenn dies auf Sie zutrifft, lesen Sie diesen Artikel .

Verwenden redis-cli bgsave

3
Jeremy Hert