Introdução

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.

Como Utilizar Este Guia

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 the cloud provider, 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.

Definindo Chaves para Expirar

como illustration for: Definindo Chaves para Expirar

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.

Verificando Quanto Tempo Até uma Chave Expirar

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

				
			
				
					
[secondary_label 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

				
			
				
					
[secondary_label 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.

Chaves Persistentes

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.

Conclusão

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.