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

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

Redis bietet keine Möglichkeit zum Massenlöschen von Schlüsseln. Sie können jedoch redis-cli und ein wenig Befehlszeilenmagie verwenden, um Schlüssel massenweise zu löschen, ohne redis zu blockieren.


Dieser Befehl löscht alle Schlüssel, die mit Benutzern übereinstimmen:*
redis-cli --scan --pattern users:* | xargs redis-cli del

Wenn Sie Redis 4.0 oder höher verwenden, können Sie stattdessen den Befehl zum Aufheben der Verknüpfung verwenden, um Schlüssel im Hintergrund zu löschen.


redis-cli --scan --pattern users:* | xargs redis-cli unlink

Wie funktioniert das Skript?

  1. Zunächst verwenden wir redis-cli --scan --pattern <pattern> um eine Schlüsselliste zu erhalten, ein Schlüssel pro Zeile. Da dies einen Scan verwendet, wird der Redis-Server nicht blockiert.
  2. xargs nimmt mehrere Zeilen und kombiniert sie in derselben Zeile, sodass Sie im Wesentlichen den Befehl del <key1> <key2>... ausführen
  3. Wenn Sie Tausende von Schlüsseln haben, die mit dem Muster übereinstimmen, führt xargs automatisch mehrmals redis-cli aus.

Siehe auch

  • Felder in einem Hash umbenennen
  • Setzen Sie das Ablaufdatum auf mehrere Schlüssel
  • Mehrere Schlüssel mit Scan umbenennen
  • RDBTools GUI for Redis ermöglicht Ihnen eine Vorschau Ihrer Massenaktionen und bietet eine leistungsstarke GUI zum Verwalten von Daten in Redis. Es ist ein kostenloser Download!