sql >> Databasteknik >  >> NoSQL >> Redis

Hur man tar bort nycklar som matchar ett mönster i Redis

Redis erbjuder inte ett sätt att massradera nycklar. Du kan dock använda redis-cli och lite kommandoradsmagi för att radera nycklar utan att blockera redis.


Detta kommando tar bort alla nycklar som matchar användare:*
redis-cli --scan --pattern users:* | xargs redis-cli del

Om du använder Redis 4.0 eller senare kan du använda kommandot unlink istället för att ta bort nycklar i bakgrunden.


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

Hur fungerar skriptet?

  1. Först använder vi redis-cli --scan --pattern <pattern> för att få en lista med nycklar, en nyckel per rad. Eftersom denna använder skanning, blockeras inte redis-servern.
  2. xargs tar flera rader och kombinerar dem på samma rad, så du kör i princip kommandot del <key1> <key2>...
  3. Om du har tusentals nycklar som matchar mönstret kommer xargs automatiskt att köra redis-cli flera gånger.

Se även

  • Byt namn på fält i en hash
  • Ange utgångsdatum till flera nycklar
  • Byt namn på flera nycklar med Scan
  • RDBTools GUI för Redis låter dig förhandsgranska dina bulkåtgärder och tillhandahåller ett kraftfullt GUI för att hantera data i Redis. Det är en gratis nedladdning!

  1. Twisted:varför är det så att om du skickar en uppskjuten återuppringning till en uppskjuten tråd så blockeras tråden helt plötsligt?

  2. Installera Redis på CentOS 8

  3. MongoDB $tanh

  4. Hur kapslar man en lista i en struktur i Redis för att minska toppnivån?