sql >> Database teknologi >  >> NoSQL >> Redis

Sådan sletter du nøgler, der matcher et mønster i Redis

Redis tilbyder ikke en måde at masseslette nøgler på. Du kan dog bruge redis-cli og en lille smule kommandolinjemagi til at masseslette nøgler uden at blokere redis.


Denne kommando vil slette alle nøgler, der matcher brugere:*
redis-cli --scan --pattern users:* | xargs redis-cli del

Hvis du er i Redis 4.0 eller nyere, kan du bruge kommandoen unlink i stedet for at slette nøgler i baggrunden.


redis-cli --scan --pattern users:* | xargs redis-cli unlink

Hvordan fungerer scriptet?

  1. For det første bruger vi redis-cli --scan --pattern <pattern> for at få en liste over nøgler, én nøgle pr. linje. Da denne bruger scanning, er redis-serveren ikke blokeret.
  2. xargs tager flere linjer og kombinerer dem på samme linje, så du i det væsentlige kører kommandoen del <key1> <key2>...
  3. Hvis du har tusindvis af nøgler, der matcher mønsteret, vil xargs automatisk udføre redis-cli flere gange.

Se også

  • Omdøb felter i en Hash
  • Indstil udløb til flere nøgler
  • Omdøb flere taster ved hjælp af Scan
  • RDBTools GUI til Redis giver dig mulighed for at forhåndsvise dine massehandlinger og giver en kraftfuld GUI til at administrere data i Redis. Det er en gratis download!

  1. Forskellen mellem MongoDB og Mongoose

  2. Spring Redis sorteringsnøgler

  3. mongodb 3.x driver Android kompatibilitet

  4. Hvordan genvinder man slettet plads uden `db.repairDatabase()`?