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

Come eliminare in blocco centinaia di migliaia di chiavi con caratteri speciali in Redis

Ecco come l'ho risolto, funziona per miliardi di record senza stressare il redis.

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

Passaggio 1. Scarica tutte le chiavi di cui hai bisogno da redis in un file, chiamiamo questo file YES_WE_CAN.sh

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

Passaggio 2: Apri il file YES_WE_CAN.sh con vi o vim e premi : carattere, quindi digita quanto segue per sostituire il carattere speciale ' :

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

Questo sostituirà tutti i ' caratteri con '"'"' sequenza di fuga. (Fidati di me, funziona, continua così!)

Passaggio 3: Anteponi a ciascuna stringa redis-cli DEL (non dimenticare lo spazio alla fine):

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

Passaggio 4: Aggiungi alla fine di ogni riga il ' carattere:

:%s/$/'/g

Passaggio 5: Salva il file ed esci usando :wq

Passaggio 6: Modifica il file YES_WE_CAN.sh in modalità eseguibile:

chmod +x YES_WE_CAN.sh

Passaggio 7: Esegui il file:

./YES_WE_CAN.sh

Goditi il ​​tuo caffè mentre lo script cancella i milioni di chiavi che hai richiesto.