Redis bietet keinen Befehl zum Massenumbenennen von Schlüsseln in Redis. Aber es ist einfach genug, ein Skript mit redis-cli und einigen Kommandozeilen-Tools zu erstellen.
Dieser Befehl benennt Schlüssel, die mit Benutzern:* übereinstimmen, in Kunden*:
umWie funktioniert das Skript?
- Zunächst verwenden wir
redis-cli --scan --pattern <pattern>
um eine Liste der Schlüssel zu erhalten, die umbenannt werden sollten. Da wir den Scan-Befehl verwenden, blockiert dieser den Redis-Server nicht. - Als Nächstes verwenden wir awk, um Zeichenfolgen zu ersetzen und einen neuen Namen zu generieren. Dies ist der
gsub(/users/,"customers", new_key)
im Bash-Befehl - Als nächstes verwenden wir unseren Befehl
rename <old key> <new key>
, aber um es effizient zu machen, generieren wir es im Redis-Protokollformat. - Schließlich leiten wir das Redis-Protokoll mit dem
--pipe
an redis-cli weiter Möglichkeit. Dies ist der effizienteste Weg, um einen Strom von Befehlen an den Redis-Server zu senden.
Anpassen dieses Skripts
- 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.
- Sie müssen das Scan-Muster und den gsub-Aufruf ersetzen, um Ihre Anforderungen zu erfüllen.
Siehe auch
- Felder in einem Hash umbenennen
- Setzen Sie das Ablaufdatum auf mehrere Schlüssel
- 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!