Cheatsheet

Como Expirar Chaves no Redis

Published on March 23, 2020
Português
Como Expirar Chaves no Redis

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

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:

  1. set key_melon "cantaloupe"
  2. 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:

  1. 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:

  1. 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:

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

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

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

Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.

Learn more about our products

About the authors
Default avatar

Manager, Developer Education

Technical Writer @ DigitalOcean



Still looking for an answer?

Ask a questionSearch for more help

Was this helpful?
 
Leave a comment


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!

Try DigitalOcean for free

Click below to sign up and get $200 of credit to try our products over 60 days!

Sign up

Join the Tech Talk
Success! Thank you! Please check your email for further details.

Please complete your information!

Become a contributor for community

Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.

DigitalOcean Documentation

Full documentation for every DigitalOcean product.

Resources for startups and SMBs

The Wave has everything you need to know about building a business, from raising funding to marketing your product.

Get our newsletter

Stay up to date by signing up for DigitalOcean’s Infrastructure as a Newsletter.

New accounts only. By submitting your email you agree to our Privacy Policy

The developer cloud

Scale up as you grow — whether you're running one virtual machine or ten thousand.

Get started for free

Sign up and get $200 in credit for your first 60 days with DigitalOcean.*

*This promotional offer applies to new accounts only.