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?
- Primeiro, usamos
redis-cli --scan --pattern <pattern>
para obter uma lista de chaves, uma chave por linha. - Em seguida, executamos um script awk para cada chave. Este script awk é um pouco complexo, então vamos dividi-lo
- O script awk tem um modelo de comando
expire __key__ 1000
. Este é o comando que será executado para todas as chaves. - Para cada chave correspondente, o comando awk substitui
__key__
com a chave real - Em seguida, convertemos o comando string para o formato do protocolo redis. Este é o formato bruto que o redis entende.
- 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
- Você pode personalizar
cmd_template
para executar qualquer comando redis de chave única em várias chaves que correspondam a um padrão. - A verificação do Redis permite apenas padrões de estilo glob, regex não é compatível. Então
users:*
corresponderá ausers:123
assim comousers:123:favourites
. Você pode colocar umgrep
no pipeline após o primeiro redis-cli e antes do script awk. - 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!