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

So legen Sie den Ablauf in Redis auf mehrere Schlüssel fest

Oft vergessen Entwickler, einen Ablauf für Schlüssel festzulegen, und redis beginnt, nicht mehr genügend Arbeitsspeicher zu haben. Während Sie einen Ablauf für neu generierte Schlüssel festlegen können, müssen Sie dennoch einen Ablauf für Schlüssel festlegen, die sich bereits im Speicher befinden.


Dieser Befehl legt das Ablaufdatum für Schlüssel fest, die mit Benutzern übereinstimmen:*


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.
  2. Wir führen dann ein awk-Skript für jeden Schlüssel aus. Dieses awk-Skript ist ein wenig komplex, also werden wir es aufschlüsseln
  3. Das awk-Skript hat eine Befehlsvorlage expire __key__ 1000 . Dies ist der Befehl, der für alle Schlüssel ausgeführt wird.
  4. Für jeden übereinstimmenden Schlüssel ersetzt der awk-Befehl __key__ mit dem eigentlichen Schlüssel
  5. Als nächstes konvertieren wir den String-Befehl in das Redis-Protokollformat. Dies ist das Rohformat, das redis versteht.
  6. Schließlich leiten wir die Rohbefehle mit dem Flag –pipe an redis-cli weiter. Dies ist der effizienteste Weg, um Massenbefehle an redis zu senden.

Anpassen dieses Skripts

  1. Sie können cmd_template anpassen um einen Redis-Befehl mit einem einzelnen Schlüssel für mehrere Schlüssel auszuführen, die einem Muster entsprechen.
  2. Der Redis-Scan erlaubt nur Muster im Glob-Stil, Regex wird nicht unterstützt. Also users:* entspricht users:123 sowie users:123:favourites . Sie können ein grep einfügen in der Pipeline nach dem ersten redis-cli und vor dem awk-Skript.
  3. Wenn sich Ihr Redis-Server nicht auf localhost befindet, müssen Sie Host, Port und Passwort zweimal angeben im Befehl, im Grunde immer dann, wenn Sie redis-cli aufrufen.

Siehe auch

  • Felder in einem Hash umbenennen
  • Mehrere Schlüssel mit Scan umbenennen
  • Schlüssel löschen, die einem Muster entsprechen
  • 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!