2016-11-11 1 views
1

Wenn ich eine Liste in einem Schlüssel "A" gespeichert habe, wie kann ich diese Liste in einem anderen Schlüssel "B" duplizieren?Doppelte Wiedergabeliste

Ich weiß, dass für Nicht-Liste Werte kann ich "bekommen", und dann "setzen". Aber für Listen, wenn ich versuche, es zu bekommen, sehe ich den WRONGTYPE Operationsfehler.

Antwort

1

Sie sollten LRANGE verwenden, um alle Elemente der ersten Liste zu erhalten, und dann LPUSH oder RPUSH verwenden, um diese Elemente in die zweite Liste aufzunehmen.

3

Redis ermöglicht 5 unterschiedliche Datenstrukturen, wie zum Beispiel:

  • Schlüsselwerte
  • Strings
  • Hashs
  • Listen
  • Sets

Jede der Datenstruktur seine eigenen Befehle. Um die aktuelle Liste zu erhalten, sollten Sie den LRANGE Befehl verwenden.

Das Präfix L verweist auf die Listendatenstruktur.

(Redis Set-Datenstruktur hat einen ähnlichen Befehl Bereich von SetRange mit)

Wenn Sie die Redis LRANGE documentation lesen, werden Sie verstehen, wie es zu benutzen.

hier der kurze Code, den Sie verwenden können:

LRANGE mylist 0 -1 

Wo mylist ist die Liste, die Sie aus den Werten erhalten.

Die Offsets Start und Stopp sind Null basierende Indizes, wobei 0 die erste Element der Liste ist (der Kopf der Liste), das nächste 1 Element ist und so weiter.

-1 wird verwendet, um das letzte Element in der Liste zu beschreiben.

Jetzt sollten Sie die LPUSH oder RPUSH verwenden, hängt von der Listenseite ab, die Sie die alten Elemente in die neue Liste einfügen möchten.

1

Eine andere Möglichkeit, den Wert eines Schlüssels unabhängig von der Datenstruktur zu duplizieren, ist DUMP und dann RESTORE in den neuen Schlüssel. In den meisten Fällen ist dieser Ansatz auch der schnellste.

Verwandte Themen