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
-
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 . -
Ofwel
SCAN
ofKEYS
commando zijn inefficiënt, vooralKEYS
mag niet bij de productie worden gebruikt. U moet overwegen een index voor deze sleutels te bouwen.