Wie leere ich eine Redis-Datenbank?

164

Ich habe in den letzten Tagen mit Redis gespielt (und ein bisschen Spaß damit hinzugefügt) und ich würde gerne wissen, ob es eine Möglichkeit gibt, die Datenbank (entfernen Sie die Sets, den vorhandenen Schlüssel ...) einfach zu leeren .
Während meiner Tests habe ich mehrere Sets mit vielen Mitgliedern erstellt, sogar Sets, an die ich mich nicht erinnere (wie kann ich diese Typen auflisten?).
Irgendeine Idee, wie man sie alle loswird?

Luc
quelle

Antworten:

197

Sie haben zwei Möglichkeiten:

  • FLUSHDB - löscht die aktuell aktive Datenbank
  • FLUSHALL - löscht alle vorhandenen Datenbanken
plaes
quelle
136

Sei hier vorsichtig.

FlushDB löscht alle Schlüssel in der aktuellen Datenbank, während FlushALL alle Schlüssel in allen Datenbanken auf dem aktuellen Host löscht.

Dexter
quelle
Gibt es einen Nachteil bei der Verwendung von FlushDB zum Löschen einer bestimmten Datenbank aus dem Produktionscode?
Alex Naspo
1
@AlexNaspo ist möglicherweise problematisch, da das Spülen umso länger dauert, je größer Ihre Datenbank ist. Da nummerierte (gemeinsam genutzte) Datenbanken von demselben Redis-Server verwaltet werden, können Ihre anderen Datenbanken für diese Dauer blockiert werden. Verwenden Sie aus diesem Grund nach Möglichkeit keine gemeinsam genutzten Datenbanken, da diese nicht zukunftssicher sind (in Version 3 nicht unterstützt). Weitere Informationen finden Sie hier: redislabs.com/blog/…
Itamar Haber
@ItamarHaber Was ist der effizienteste Weg, um einen Satz von Schlüsseln zu löschen oder abzulaufen, die einem bestimmten Format entsprechen?
Alex Naspo
1
@AlexNaspo Wenn Sie v2.8 + verwenden, würde eine Kombination aus SCAN und DEL den Trick gut machen. Sehen Sie hier für ein Bash-Skript, das es tut: stackoverflow.com/a/23399125/3160475
Itamar Haber
$ redis-cliWählen Sie dann Datenbank. Ich > select 0> FLUSHDB
wähle
31

Mit redis-cli:

FLUSHDB       - Removes data from your connection's CURRENT database.
FLUSHALL      - Removes data from ALL databases.

Redis Docs: FLUSHDB , FLUSHALL

Hieu Le
quelle
30

tldr: flushdblöscht eine Datenbank undflushall löscht alle Datenbanken

AKTUELL löschen

Löschen Sie die Standarddatenbank oder die aktuell ausgewählte Datenbank (normalerweise `0) mit

redis-cli flushdb

Deaktivieren Sie SPEZIFISCH

Löschen Sie eine bestimmte Redis-Datenbank mit (z. B. 8als meine Zieldatenbank):

redis-cli -n 8 flushdb 

Alles löschen

Löschen Sie alle Redis-Datenbanken mit

redis-cli flushall
Marc
quelle
2

Es gibt richtige Antworten, aber ich möchte nur eine weitere Option hinzufügen (erfordert Ausfallzeiten):

  1. Stoppen Sie Redis.
  2. RDB-Datei löschen (Speicherort in redis.conf finden).
  3. Starten Sie Redis.
Denys
quelle
0

Öffnen Sie Ihre Redis-CLI und es gibt zwei mögliche Optionen, die Sie verwenden können:

FLUSHDB - Löscht alle Schlüssel der aktuell ausgewählten Datenbank. FLUSHALL - Löschen Sie alle Schlüssel aller vorhandenen Datenbanken, nicht nur die aktuell ausgewählte.

behzad babaei
quelle