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

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

Svar på det spørgsmål forsøger at fjerne flere nøgler i en enkelt DEL . Nøgler, der matcher det givne mønster, er dog muligvis IKKE placeret i det samme slot, og Redis Cluster understøtter IKKE flertastskommandoer, hvis disse nøgler ikke tilhører samme slot. Det er derfor, du får fejlmeddelelsen.

For at løse dette problem skal du DEL disse taster én efter én:

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

-L mulighed for xargs kommando angiver antallet af nøgler, der skal slettes. Du skal angive denne mulighed som 1 .

For at fjerne alle nøgler, der matcher mønsteret, skal du også køre ovenstående kommando for hver masterknude i din klynge.

BEMÆRK

  1. Med denne kommando skal du slette disse nøgler én efter én, og det kan være meget langsomt. Du skal overveje at re-designe din database og bruge hash-tags for at få nøgler, der matcher mønsteret, til at høre til samme slot. Så du kan fjerne disse nøgler i en enkelt DEL .

  2. Enten SCAN eller KEYS kommandoen er ineffektive, især KEYS bør ikke bruges i produktionen. Du skal overveje at bygge et indeks for disse nøgler.



  1. MongoDB - objekter? Hvorfor har jeg brug for _id samlet

  2. mongodb finde ved at sammenligne feltværdier

  3. Indeksering på et felt, der er i række af underdokumenter

  4. Hvad er Redis pubsub, og hvordan bruger jeg det?