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

Como renomear várias chaves no Redis


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?

  1. 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.
  2. 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
  3. 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.
  4. 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

  1. 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.
  2. 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!