Redis biedt geen manier om sleutels in bulk te verwijderen. Je kunt echter redis-cli en een beetje magie op de commandoregel gebruiken om sleutels in bulk te verwijderen zonder redis te blokkeren.
Met deze opdracht worden alle sleutels verwijderd die overeenkomen met gebruikers:*
redis-cli --scan --pattern users:* | xargs redis-cli del
Als je in redis 4.0 of hoger zit, kun je in plaats daarvan de opdracht ontkoppelen gebruiken om sleutels op de achtergrond te verwijderen.
redis-cli --scan --pattern users:* | xargs redis-cli unlink
Hoe werkt het script?
- Eerst gebruiken we
redis-cli --scan --pattern <pattern>
om een lijst met sleutels te krijgen, één sleutel per regel. Aangezien dit scan gebruikt, wordt de redis-server niet geblokkeerd. xargs
neemt meerdere regels en combineert ze op dezelfde regel, dus je voert in wezen het commandodel <key1> <key2>...
uit- Als je duizenden sleutels hebt die overeenkomen met het patroon, zal xargs automatisch meerdere keren redis-cli uitvoeren.
Zie ook
- De naam van velden in een hash wijzigen
- Vervaldatum instellen op meerdere sleutels
- Meerdere toetsen hernoemen met Scan
- Met de GUI van RDBTools voor Redis kunt u een voorbeeld van uw bulkacties bekijken en biedt een krachtige GUI om gegevens in Redis te beheren. Het is een gratis download!