sql >> Database >  >> NoSQL >> Redis

Sleutels verwijderen die overeenkomen met een patroon in Redis Cluster

Antwoorden voor die vraag proberen meerdere sleutels te verwijderen in een enkele DEL . Het is echter mogelijk dat sleutels die met het gegeven patroon overeenkomen, NIET in dezelfde sleuf worden geplaatst, en Redis Cluster ondersteunt GEEN opdrachten met meerdere toetsen als deze sleutels niet tot dezelfde sleuf behoren. Daarom krijg je de foutmelding.

Om dit probleem op te lossen, moet u DEL deze toetsen één voor één:

redis-cli --scan --pattern "foo*" |xargs -L 1 redis-cli del

De -L optie voor xargs commando specificeert het aantal sleutels dat moet worden verwijderd. U moet deze optie specificeren als 1 .

Om alle sleutels te verwijderen die overeenkomen met het patroon, moet u ook de bovenstaande opdracht uitvoeren voor alle hoofdknooppunten in uw cluster.

OPMERKING

  1. Met dit commando moet je deze sleutels één voor één verwijderen, en dat kan erg traag zijn. U moet overwegen uw database opnieuw te ontwerpen en hash-tags . te gebruiken om sleutels die overeenkomen met het patroon tot dezelfde sleuf te laten behoren. Zodat u deze sleutels in een enkele DEL . kunt verwijderen .

  2. Ofwel SCAN of KEYS commando zijn inefficiënt, vooral KEYS mag niet bij de productie worden gebruikt. U moet overwegen een index voor deze sleutels te bouwen.



  1. Moet ik de Redis-verbinding tussen bestanden/modules delen?

  2. Wat is InputSplit in Hadoop MapReduce?

  3. Hoe casbah mongodb-lijst naar json te converteren in scala / play

  4. HBase-upgrade bovenop Event Sourcing en CQRS-architectuur in 3 weken