O Redis não oferece um comando para renomear chaves em massa no redis. Mas é bastante fácil criar um script usando redis-cli e algumas ferramentas de linha de comando.
Este comando renomeará as chaves correspondentes a users:* to clients*:
Como funciona o script?
- Primeiro, usamos
redis-cli --scan --pattern <pattern>
para obter uma lista de chaves que devem ser renomeadas. Como estamos usando o comando scan, isso não bloqueia o servidor redis. - Em seguida, usamos awk para fazer a substituição de strings e gerar um novo nome. Este é o
gsub(/users/,"customers", new_key)
no comando bash - Em seguida, usamos gerar nosso comando
rename <old key> <new key>
, mas para torná-lo eficiente, nós o geramos no formato do protocolo redis. - Por fim, canalizamos o protocolo redis para redis-cli com o
--pipe
opção. Essa é a maneira mais eficiente de enviar um fluxo de comandos para o servidor redis.
Personalizando este script
- Se seu servidor redis não estiver no host local, você terá que fornecer o host, a porta e a senha duas vezes no comando, basicamente sempre que você chama redis-cli.
- Você terá que substituir o padrão de varredura e a chamada gsub para atender às suas necessidades.
Veja também
- Renomear campos em um hash
- Definir expiração para várias chaves
- Excluir chaves que correspondem a um padrã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!