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?

Antworten:


197

Sie haben zwei Möglichkeiten:

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

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.


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


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

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.

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.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.