Ich möchte Schlüssel entfernen, die mit "Benutzer *" übereinstimmen.
Wie mache ich das in der Redis-Kommandozeile?
database
redis
redis-commands
TIMEX
quelle
quelle
Antworten:
Dies ist derzeit keine Funktion, die auf einmal ausgeführt werden kann (siehe Kommentare in der
DEL
Dokumentation ). Leider bleibt Ihnen nur die VerwendungKEYS
, das Durchlaufen der Ergebnisse und das anschließendeDEL
Entfernen der einzelnen Ergebnisse .Wie wäre es mit ein bisschen Bash, um zu helfen?
Um es zu durchlaufen:
echo 'KEYS user*' | redis-cli | awk '{print $1}'
- Holen Sie sich alle Schlüssel und entfernen Sie den zusätzlichen Text, den Sie nicht möchten, mit awk.echo DEL $key
- Erstellen Sie für jede eine Echo-Anweisung, um sie zu entfernen.| redis-cli
- Nehmen Sie die DEL-Anweisungen und geben Sie sie an die CLI zurück.Nicht vorzuschlagen, dass dies der beste Ansatz ist (Sie könnten einige Probleme haben, wenn einige Ihrer Benutzernamen Leerzeichen enthalten, aber hoffentlich verstehen Sie den Punkt).
quelle
Ein weiterer kompakter Einzeiler, mit dem ich mache, was Sie wollen, ist:
quelle
redis-cli -n 3 KEYS "prefix:*" | xargs redis-cli -n 3 DEL
Jetzt gibt es einen Befehl zum Entfernen eines Schlüssels, dh der DEL-Taste [Tasten].
DEL-Taste ...
quelle
Neben der Antwort von orangeoctopus benötigen Sie die
echo
und -Pipe nicht, sondern können Befehle als Argumente übergebenredis-cli
. Das heißt, Sie können tunquelle
Mit
awk
finden Sie alle passenden Schlüssel von redis mitredis-cli KEYS
Befehl und Pipe-to-redis-cli DEL
Befehl.quelle
Verwenden Sie diese Option, um Redis-Schlüssel mit Backslashes, Anführungszeichen, doppelten Anführungszeichen oder Leerzeichen zu entfernen:
redis-cli KEYS "user*" | sed 's/\\/\\\\/g' | sed 's/"/\\"/g' | sed "s/'/\\\\'/g" | sed 's/ /\\ /g' | xargs redis-cli DEL
quelle
Ich weiß, dass dies alt ist, aber für diejenigen von Ihnen, die von Google hierher kommen:
Ich habe gerade ein Befehlszeilenschnittstellen-Dienstprogramm für npm und github veröffentlicht, mit dem Sie Schlüssel aus einer Redis-Datenbank löschen können, die einem bestimmten Muster entsprechen (gerade oder wie Sie den Benutzer gefragt haben ).
Das Dienstprogramm finden Sie hier:
https://www.npmjs.com/package/redis-utils-cli
quelle
Wenn Sie den Oneliner verwenden, können Sie das Muster bearbeiten, falls es bestimmten Zeichen entgeht. Um beispielsweise Muster wie '\ b test \ b' zu löschen, verwenden Sie:
quelle