sql >> Databasteknik >  >> NoSQL >> Redis

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

Svar på den frågan försöker ta bort flera nycklar i en enda DEL . Emellertid kan nycklar som matchar det givna mönstret INTE placeras i samma plats, och Redis Cluster stöder INTE kommandon med flera tangenter om dessa nycklar inte tillhör samma plats. Det är därför du får felmeddelandet.

För att åtgärda det här problemet måste du DEL dessa nycklar en i taget:

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

-L alternativ för xargs kommandot anger antalet nycklar som ska raderas. Du måste ange detta alternativ som 1 .

För att ta bort alla nycklar som matchar mönstret måste du också köra kommandot ovan för alla masternoder i ditt kluster.

OBS

  1. Med det här kommandot måste du ta bort dessa nycklar en i taget, och det kan vara väldigt långsamt. Du måste överväga att omforma din databas och använda hash-taggar för att få nycklar som matchar mönstret att tillhöra samma plats. Så att du kan ta bort dessa nycklar i en enda DEL .

  2. Antingen SCAN eller KEYS kommandon är ineffektiva, speciellt KEYS bör inte användas i produktionen. Du måste överväga att bygga ett index för dessa nycklar.



  1. Fyll en mangustmodell med ett fält som inte är ett id

  2. 2 sätt att ta bort en databas i MongoDB

  3. Installera MongoDB på Windows

  4. Hur säger man till Mongo att sortera en samling innan man begränsar resultaten?