Es gibt keine einfache Methode, schreiben Sie also ein Skript
Um Redis-Daten mit einem Muster zu löschen, klicken Sie auf Schlüssel löschen, die dem Redis-Muster entsprechen. , aber es ist kein einfacher Ansatz (obwohl es kein einfacher Ansatz ist), aber bei Verwendung von Redis Cluster werden Daten auch dann verwendet, wenn das Schlüsselpräfix identisch ist Wird auf die Knoten verteilt, was es schwierig macht, alle auf einmal zu verweisen oder zu löschen.
Ich mache das in der Release-Umgebung selten, aber ich bin ein wenig besorgt, wenn ich Redis Cluster aus der Entwicklungsumgebung verwende. Was tun, wenn Sie versehentlich beschädigte Daten speichern und diese endgültig löschen möchten?
Aus dem Ergebnis geht hervor, dass es am schnellsten ist, ein solches Skript zu schreiben.
delete-pat
#! /usr/bin/env python
import sys
import commands
print sys.argv
#Bitte setzen Sie den Knoten selbst
nodes = [
"localhost:10000",
"localhost:10001",
"localhost:10002"
]
pat = sys.argv[1]
for node in nodes:
host, port = node.split(":")
output = commands.getoutput("redis-cli -h {host} -p {port} -c keys {pat}".format(host=host,port=port,pat=pat))
result = filter(lambda s:len(s) > 0, output.split("\n"))
print host, port
print result
for key in result:
print commands.getoutput("redis-cli -h {host} -p {port} -c del {key}".format(host=host,port=port,key=key))
Ich benutze es so
./delete-pat hoge:fuga:*
Das ist alles von hier.
Recommended Posts