Antworten auf diese Frage versuchen, mehrere Schlüssel in einem einzigen DEL
zu entfernen . Schlüssel, die dem angegebenen Muster entsprechen, befinden sich jedoch möglicherweise NICHT im selben Steckplatz, und Redis Cluster unterstützt KEINE Mehrfachtastenbefehle, wenn diese Schlüssel nicht zum selben Steckplatz gehören. Deshalb erhalten Sie die Fehlermeldung.
Um dieses Problem zu beheben, müssen Sie DEL
ausführen diese Schlüssel nacheinander:
redis-cli --scan --pattern "foo*" |xargs -L 1 redis-cli del
Das -L
Option für xargs
Der Befehl gibt die Anzahl der zu löschenden Schlüssel an. Sie müssen diese Option als 1
angeben .
Um alle Schlüssel zu entfernen, die dem Muster entsprechen, müssen Sie den obigen Befehl auch für jeden Master-Knoten in Ihrem Cluster ausführen.
HINWEIS
-
Mit diesem Befehl müssen Sie diese Schlüssel einzeln löschen, und das kann sehr langsam sein. Sie müssen erwägen, Ihre Datenbank neu zu gestalten und Hash-Tags zu verwenden damit Schlüssel, die mit dem Muster übereinstimmen, zum selben Steckplatz gehören. Damit Sie diese Schlüssel mit einem einzigen
DEL
entfernen können . -
Entweder
SCAN
oderKEYS
Befehle sind ineffizient, insbesondereKEYS
sollte nicht in der Produktion verwendet werden. Sie müssen erwägen, einen Index für diese Schlüssel zu erstellen.