Redis
 sql >> Base de Dados >  >> NoSQL >> Redis

Como excluir em massa centenas de milhares de chaves com caracteres especiais no Redis


Aqui está como eu resolvi isso, isso funciona para zilhões de registros sem enfatizar o redis.
WARNING: PLEASE DO NOT TRY THIS AT HOME UNATTENDED AND MAKE SURE TO WEAR 
ALL SAFETY EQUIPMENT NECESSARY FOR THE TASK.

Etapa 1. Despeje todas as chaves que você precisa do redis para um arquivo, vamos chamar este arquivo de YES_WE_CAN.sh
redis-cli KEYS "StartsWith*" > YES_WE_CAN.sh

Etapa 2: Abra o arquivo YES_WE_CAN.sh com vi ou vim e pressione : caractere e digite o seguinte para substituir o caractere especial ' :
:%s/'/'"'"'/g

Isso substituirá todos os ' caracteres com '"'"' sequência de fuga. (Confie em mim, isso funciona, continue!)

Etapa 3: Anexar a cada string redis-cli DEL (não se esqueça do espaço no final):
:%s/^/redis-cli DEL /g

Etapa 4: Acrescente no final de cada linha o ' personagem:
:%s/$/'/g

Etapa 5: Salve o arquivo e saia usando :wq

Etapa 6: Altere o arquivo YES_WE_CAN.sh para o modo executável:
chmod +x YES_WE_CAN.sh

Etapa 7: Execute o arquivo:
./YES_WE_CAN.sh

Aproveite seu café enquanto o script exclui as milhões de chaves que você solicitou.