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

Como definir a expiração para várias chaves no Redis


Muitas vezes, os desenvolvedores esquecem de definir uma expiração nas chaves e o redis começa a ficar sem memória. Embora você possa definir uma expiração para as chaves recém-geradas, você ainda precisa de uma maneira de definir uma expiração para as chaves que já estão na memória.




Este comando definirá a expiração das chaves correspondentes aos usuários:*



Como funciona o script?

  1. Primeiro, usamos redis-cli --scan --pattern <pattern> para obter uma lista de chaves, uma chave por linha.
  2. Em seguida, executamos um script awk para cada chave. Este script awk é um pouco complexo, então vamos dividi-lo
  3. O script awk tem um modelo de comando expire __key__ 1000 . Este é o comando que será executado para todas as chaves.
  4. Para cada chave correspondente, o comando awk substitui __key__ com a chave real
  5. Em seguida, convertemos o comando string para o formato do protocolo redis. Este é o formato bruto que o redis entende.
  6. Finalmente, canalizamos os comandos brutos para redis-cli usando o sinalizador –pipe. Essa é a maneira mais eficiente de enviar comandos em massa para redis.

Personalizando este script

  1. Você pode personalizar cmd_template para executar qualquer comando redis de chave única em várias chaves que correspondam a um padrão.
  2. A verificação do Redis permite apenas padrões de estilo glob, regex não é compatível. Então users:* corresponderá a users:123 assim como users:123:favourites . Você pode colocar um grep no pipeline após o primeiro redis-cli e antes do script awk.
  3. 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.

Veja também

  • Renomear campos em um hash
  • Renomear várias chaves usando a digitalização
  • 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!