929 Stimmen

Wie kann ich alles in Redis löschen?

Ich möchte alle Schlüssel löschen. Ich möchte, dass alles gelöscht wird und ich eine leere Datenbank habe.

Gibt es eine Möglichkeit, dies zu tun in Redis Kunde?

3voto

tcrabsheen Punkte 106

Ich denke, dass man manchmal den Redis-Server stoppen und die rdbaof-Dateien löschen sollte stellen Sie sicher, dass keine Daten nachgeladen werden können. dann starten Sie den Redis-Server, jetzt ist es neu und leer.

2voto

user9869932 Punkte 5353

Sie können verwenden FLUSHDB

z.B.

Datenbanken auflisten:

127.0.0.1:6379> info keyspace
# Keyspace

Tasten auflisten

127.0.0.1:6379> keys *
(empty list or set)

Einen Wert zu einem Schlüssel hinzufügen

127.0.0.1:6379> lpush key1 1
(integer) 1
127.0.0.1:6379> keys *
1) "key1"
127.0.0.1:6379> info keyspace
# Keyspace
db0:keys=1,expires=0,avg_ttl=0

Anderen Schlüssel mit zwei Werten erstellen

127.0.0.1:6379> lpush key2 1
(integer) 1
127.0.0.1:6379> lpush key2 2
(integer) 2
127.0.0.1:6379> keys *
1) "key1"
2) "key2"
127.0.0.1:6379> info keyspace
# Keyspace
db0:keys=2,expires=0,avg_ttl=0

Alle Werte in Schlüssel2 auflisten

127.0.0.1:6379> lrange key2 0 -1
1) "2"
2) "1"

Do FLUSHDB

127.0.0.1:6379> flushdb
OK

Schlüssel und Datenbanken auflisten

127.0.0.1:6379> keys *
(empty list or set)
127.0.0.1:6379> info keyspace
# Keyspace

2voto

AbhiK Punkte 217

Sie können folgenden Ansatz in Python verwenden

def redis_clear_cache(self):

    try:
        redis_keys = self.redis_client.keys('*')
    except Exception as e:
        # print('redis_client.keys() raised exception => ' + str(e))
        return 1

    try:
        if len(redis_keys) != 0:
            self.redis_client.delete(*redis_keys)
    except Exception as e:
        # print('redis_client.delete() raised exception => ' + str(e))
        return 1

    # print("cleared cache")
    return 0

2voto

Jose Nobile Punkte 3143

Das funktioniert bei mir: redis-cli KEYS \* | xargs --max-procs=16 -L 100 redis-cli DEL

Es listet alle Keys in redis auf und übergibt sie dann mit xargs an redis-cli DEL, wobei es maximal 100 Keys pro Befehl verwendet, aber 16 Befehle gleichzeitig ausführt. Es ist sehr schnell und nützlich, wenn es aus Sicherheitsgründen kein FLUSHDB oder FLUSHALL gibt, zum Beispiel bei der Verwendung von Redis von Bitnami in Docker oder Kubernetes. Außerdem erfordert es keine zusätzliche Programmiersprache und es ist nur eine Zeile.

1voto

Raviraj Singh Punkte 7

Ihre Frage scheint sich auf das Löschen von ganzen Schlüsseln in einer Datenbank zu beziehen. In diesem Fall sollten Sie es versuchen:

  1. Mit redis verbinden. Sie können den Befehl redis-cli (wenn es über Port 6379 läuft), andernfalls müssen Sie auch die Portnummer angeben.
  2. Wählen Sie Ihre Datenbank aus (Befehl select {Index} )
  3. Führen Sie den Befehl flushdb

Wenn Sie Schlüssel in allen Datenbanken spülen wollen, sollten Sie versuchen flushall .

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X