O Redis é um datastore ou armazenamento de dados open-source de chave-valor na memória. As chaves Redis são persistentes por padrão, o que significa que o servidor Redis continuará armazenando-as, a menos que sejam excluídas manualmente. No entanto, pode haver casos em que você definiu uma chave, mas você sabe que deseja excluí-la após um certo período de tempo; em outras palavras, você deseja que a chave seja volátil. Este tutorial explica como definir as chaves para expirarem, verificar o tempo restante até a expiração de uma chave e cancelar a configuração de expiração de uma chave.
Este guia está no formato de referência rápida com trechos de linha de comando independentes. Recomendamos que você pule para qualquer seção que seja relevante para a tarefa que você está tentando concluir.
Os comandos mostrados neste guia foram testados em um servidor Ubuntu 18.04 executando a versão 4.0.9 do Redis. Para configurar um ambiente semelhante, você pode seguir o Passo 1 do nosso guia Como Instalar e Proteger o Redis no Ubuntu 18.04. Vamos demonstrar como esses comandos se comportam executando-os com redis-cli
, a interface de linha de comando do Redis. Observe que se você estiver usando uma interface Redis diferente — Redli, por exemplo — a saída exata de certos comandos pode ser diferente.
Como alternativa, você pode provisionar uma instância de banco de dados Redis gerenciada para testar esses comandos, mas observe que, dependendo do nível de controle permitido pelo seu provedor de banco de dados, alguns comandos neste guia podem não funcionar como descrito. Para provisionar um banco de dados gerenciado na DigitalOcean, siga nossa documentação de produto para Managed Databases. Então, você deve instalar ou o Redli ou configurar um túnel TLS para conectar-se ao banco de dados gerenciado por TLS.
Você pode definir um tempo de expiração para uma chave existente com o comando expire
, que pega o nome da chave e o número de segundos até a expiração como argumentos. Para demonstrar isso, execute os dois comandos a seguir. O primeiro cria uma chave de string chamada key_melon
com um valor de "cantaloupe"
, e o segundo a define para expirar após 450 segundos:
- set key_melon "cantaloupe"
- expire key_melon 450
Se o tempo limite foi definido com sucesso, o comando expire
retornará (integer) 1
. Se a configuração de tempo limite falhar, ele retornará (integer) 0
.
Como alternativa, você pode definir a chave para expirar em um momento específico com o comando expireat
. Em vez do número de segundos antes da expiração, ele precisa de um Unix timestamp ou registro de data e hora como argumento. Um Unix timestamp é o número de segundos desde a Unix epoch ou 00:00:00 UTC em 1 de janeiro de 1970. Há várias ferramentas on-line que você pode usar para encontrar o Unix timestamp de uma data e hora específicas, como o EpochConverter ou o UnixTimestamp.com.
Por exemplo, para definir key_melon
para expirar às 20:30 GMT em 1º de maio de 2025 (representado pelo Unix timestamp 1746131400
), você poderia usar o seguinte comando:
- expireat key_melon 1746131400
Observe que se o timestamp passado para o expireat
já tiver ocorrido, ele excluirá a chave imediatamente.
Sempre que você definir uma chave para expirar, poderá verificar o tempo restante até a expiração (em segundos) com o ttl
, que significa “time to live” ou tempo de vida:
- ttl key_melon
Output(integer) 433
Para informações mais detalhadas, você pode executar o pttl
, que retornará a quantidade de tempo até que uma chave expire em milissegundos:
- pttl key_melon
Output(integer) 431506
Ambos, ttl
e pttl
retornarão (integer) -1
se a chave não tiver sido configurada para expirar e (integer) -2
se a chave não existir.
Se uma chave foi configurada para expirar, qualquer comando que sobrescreva o conteúdo de uma chave — como set
ou getset
— limpará o valor de tempo limite da chave. Para limpar manualmente o tempo limite de uma chave, use o comando persist
- persist key_melon
O comando persist
retornará (integer) 1
se concluído com êxito, indicando que a chave não expirará mais.
Este guia detalha vários comandos usados para manipular e verificar a persistência de chave no Redis. Se houver outros comandos, argumentos ou procedimentos relacionados que você gostaria de ver descritos neste guia, peça ou faça sugestões nos comentários abaixo.
Para obter mais informações sobre comandos Redis, consulte nossa série de tutoriais Como Gerenciar um Banco de Dados Redis.
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!