sql >> Database >  >> NoSQL >> Redis

Sleutels verwijderen die overeenkomen met een patroon in Redis

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?

  1. 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.
  2. xargs neemt meerdere regels en combineert ze op dezelfde regel, dus je voert in wezen het commando del <key1> <key2>... uit
  3. 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!

  1. MongoDB - $set om het Array-element bij te werken of te pushen

  2. MongoDB, MapReduce en sorteren

  3. Redis-serialisatie voorafgegaan door extra tekenreeks

  4. JHipster Redis Integratie-element ongebonden fout