O Redis não oferece uma maneira de excluir chaves em massa. No entanto, você pode usar redis-cli e um pouco de magia de linha de comando para excluir chaves em massa sem bloquear o redis.
Este comando excluirá todas as chaves correspondentes a users:*
redis-cli --scan --pattern users:* | xargs redis-cli del
Se você estiver no redis 4.0 ou superior, poderá usar o comando unlink para excluir chaves em segundo plano.
redis-cli --scan --pattern users:* | xargs redis-cli unlink
Como funciona o script?
- Primeiro, usamos
redis-cli --scan --pattern <pattern>
para obter uma lista de chaves, uma chave por linha. Como isso usa varredura, o servidor redis não é bloqueado. xargs
pega várias linhas e as combina na mesma linha, então você está basicamente executando o comandodel <key1> <key2>...
- Se você tiver milhares de chaves que correspondem ao padrão, xargs executará automaticamente redis-cli várias vezes.
Veja também
- Renomear campos em um hash
- Definir expiração para várias chaves
- Renomear várias chaves usando a digitalização
- A GUI do RDBTools para Redis permite visualizar suas ações em massa e fornece uma GUI poderosa para gerenciar dados no Redis. É um download gratuito!