sql >> Database >  >> NoSQL >> Redis

Hoe honderdduizenden sleutels met speciale tekens bulksgewijs te verwijderen in Redis

Dit is hoe ik het heb opgelost, dit werkt voor ontelbare records zonder de nadruk te leggen op redis.

WARNING: PLEASE DO NOT TRY THIS AT HOME UNATTENDED AND MAKE SURE TO WEAR 
ALL SAFETY EQUIPMENT NECESSARY FOR THE TASK.

Stap 1. Dump alle sleutels die je nodig hebt van redis naar een bestand, laten we dit bestand YES_WE_CAN.sh noemen

redis-cli KEYS "StartsWith*" > YES_WE_CAN.sh

Stap 2: Open het bestand YES_WE_CAN.sh met vi of vim en druk op : teken, typ dan het volgende om het speciale teken ' . te vervangen :

:%s/'/'"'"'/g

Dit vervangt alle ' tekens met '"'"' ontsnappingsvolgorde. (Geloof me, dit werkt, ga zo door!)

Stap 3: Voeg toe aan elke tekenreeks redis-cli DEL (vergeet de spatie aan het einde niet):

:%s/^/redis-cli DEL /g

Stap 4: Voeg aan het einde van elke regel de ' . toe karakter:

:%s/$/'/g

Stap 5: Sla het bestand op en sluit af met :wq

Stap 6: Wijzig het bestand YES_WE_CAN.sh naar uitvoerbare modus:

chmod +x YES_WE_CAN.sh

Stap 7: Voer het bestand uit:

./YES_WE_CAN.sh

Geniet van je koffie terwijl het script de miljoenen sleutels verwijdert die je hebt aangevraagd.



  1. Communicatie tussen twee Docker-containers op macOS 10.12

  2. Verschil tussen MongoDB en Mongoose

  3. MongoDB Een tot veel relaties

  4. Asynchrone cursoriteratie met asynchrone subtaak