Redis
 sql >> Base de données >  >> NoSQL >> Redis

Comment supprimer en bloc des centaines de milliers de clés avec des caractères spéciaux dans Redis

Voici comment je l'ai résolu, cela fonctionne pour des millions d'enregistrements sans stresser redis.

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

Étape 1. Videz toutes les clés dont vous avez besoin de redis dans un fichier, appelons ce fichier YES_WE_CAN.sh

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

Étape 2 : Ouvrez le fichier YES_WE_CAN.sh avec vi ou vim et appuyez sur : caractère, puis tapez ce qui suit pour remplacer le caractère spécial ' :

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

Cela remplacera tous les ' caractères avec '"'"' séquence d'échappement. (Croyez-moi, ça marche, continuez !)

Étape 3 : Ajouter à chaque chaîne redis-cli DEL (n'oubliez pas l'espace à la fin):

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

Étape 4 : Ajouter à la fin de chaque ligne le ' caractère :

:%s/$/'/g

Étape 5 : Enregistrez le fichier et quittez en utilisant :wq

Étape 6 : Modifiez le fichier YES_WE_CAN.sh en mode exécutable :

chmod +x YES_WE_CAN.sh

Étape 7 : Exécutez le fichier :

./YES_WE_CAN.sh

Savourez votre café pendant que le script supprime les millions de clés que vous avez demandées.