sql >> Base de Datos >  >> NoSQL >> Redis

Cómo eliminar masivamente cientos de miles de claves con caracteres especiales en Redis

Así es como lo resolví, esto funciona para millones de registros sin enfatizar redis.

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

Paso 1. Vuelca todas las claves que necesitas de redis a un archivo, llamemos a este archivo YES_WE_CAN.sh

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

Paso 2: Abra el archivo YES_WE_CAN.sh con vi o vim y presione : carácter, luego escriba lo siguiente para reemplazar el carácter especial ' :

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

Esto reemplazará todos los ' caracteres con '"'"' secuencia de escape. (Confía en mí, esto funciona, ¡sigue adelante!)

Paso 3: Anteponer a cada cadena redis-cli DEL (no olvides el espacio al final):

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

Paso 4: Agregue al final de cada línea el ' carácter:

:%s/$/'/g

Paso 5: Guarde el archivo y salga usando :wq

Paso 6: Cambia el archivo YES_WE_CAN.sh al modo ejecutable:

chmod +x YES_WE_CAN.sh

Paso 7: Ejecute el archivo:

./YES_WE_CAN.sh

Disfruta de tu café mientras el script elimina los millones de claves que solicitaste.