sql >> Databasteknik >  >> NoSQL >> Redis

Hur man massraderar hundratusentals nycklar med specialtecken i Redis

Så här löste jag det, det här fungerar för miljontals skivor utan att stressa redis.

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

Steg 1. Dumpa alla nycklar du behöver från redis till en fil, låt oss kalla den här filen YES_WE_CAN.sh

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

Steg 2: Öppna filen YES_WE_CAN.sh med vi eller vim och tryck på : tecken, skriv sedan följande för att ersätta specialtecknet ' :

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

Detta kommer att ersätta alla ' tecken med '"'"' flyktsekvens. (Tro mig, det här fungerar, fortsätt!)

Steg 3: Lägg till varje sträng redis-cli DEL (glöm inte utrymmet i slutet):

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

Steg 4: Lägg till ' i slutet av varje rad tecken:

:%s/$/'/g

Steg 5: Spara filen och avsluta med :wq

Steg 6: Ändra filen YES_WE_CAN.sh till körbart läge:

chmod +x YES_WE_CAN.sh

Steg 7: Kör filen:

./YES_WE_CAN.sh

Njut av ditt kaffe medan skriptet raderar de miljontals nycklar du begärde.



  1. Big Data Processing Engines – Vilken ska jag använda?:Del 1

  2. Hur kan jag lösenordsskydda min /sidekiq-rutt (dvs. kräver autentisering för Sidekiq::Web-verktyget)?

  3. Så här gör du:Inkludera tredjepartsbibliotek i ditt MapReduce-jobb

  4. Använder Redis SCAN i NODE