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?
- Zunächst verwenden wir
redis-cli --scan --pattern <pattern>
um eine Schlüsselliste zu erhalten, ein Schlüssel pro Zeile. - 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
- Das awk-Skript hat eine Befehlsvorlage
expire __key__ 1000
. Dies ist der Befehl, der für alle Schlüssel ausgeführt wird. - Für jeden übereinstimmenden Schlüssel ersetzt der awk-Befehl
__key__
mit dem eigentlichen Schlüssel - Als nächstes konvertieren wir den String-Befehl in das Redis-Protokollformat. Dies ist das Rohformat, das redis versteht.
- 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
- 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. - Der Redis-Scan erlaubt nur Muster im Glob-Stil, Regex wird nicht unterstützt. Also
users:*
entsprichtusers:123
sowieusers:123:favourites
. Sie können eingrep
einfügen in der Pipeline nach dem ersten redis-cli und vor dem awk-Skript. - 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!