Redis
 sql >> Datenbank >  >> NoSQL >> Redis

So löschen Sie Schlüssel, die einem Muster in Redis Cluster entsprechen

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

  1. 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 .

  2. Entweder SCAN oder KEYS Befehle sind ineffizient, insbesondere KEYS sollte nicht in der Produktion verwendet werden. Sie müssen erwägen, einen Index für diese Schlüssel zu erstellen.