Keys nach Muster ohne KEYS finden und sicher löschen (SCAN + UNLINK)
RedisWartungBefehl
# Cursor-based scan instead of KEYS (call again with the returned cursor until it returns 0):
SCAN 0 MATCH oturum:* COUNT 1000 TYPE string
# Number of keys matching the pattern:
redis-cli -h redis1 -p 6379 --scan --pattern 'oturum:*' --count 1000 | wc -l
# Bulk delete in batches of 500, freeing memory in the background:
redis-cli -h redis1 -p 6379 --scan --pattern 'oturum:*' --count 1000 | xargs -r -n 500 redis-cli -h redis1 -p 6379 UNLINKWas es tut
Durchsucht den Keyspace mit einem Cursor, ohne den Server zu blockieren, zählt Keys, die zu Muster und Typ passen, und löscht sie massenhaft mit UNLINK, wobei der Speicher im Hintergrund freigegeben wird.
Wann einsetzen
Beim Aufräumen von Keys einer alten Anwendungsversion, um herauszufinden, wie viele Keys unter einem Präfix existieren, oder wenn sonst KEYS in der Produktion nötig wäre.
Vorsicht
KEYS liefert den gesamten Keyspace auf einmal und blockiert den Server bei großen Datenmengen für Sekunden; nicht in der Produktion verwenden. SCAN gibt für während des Scans hinzugefügte/entfernte Keys keine vollständige Garantie und kann denselben Key mehrfach liefern. Keynamen mit Leerzeichen oder Anführungszeichen brechen mit xargs. Prüfe vor dem Löschen die Anzahl und einige Stichproben; es gibt kein Rückgängig.