Redis expireTime

Redis expireTime
As chaves Redis são persistentes até você removê -las manualmente. Em alguns casos, pode ser necessário armazenar os pares temporários de valor-chave na loja Redis. É uma boa prática removê -los quando não for necessário. É uma tarefa tediosa e demorada remover as chaves manualmente todas as vezes. Redis tem o recurso para definir um tempo de expiração em uma determinada chave quando você o está criando ou após a criação. Chamamos isso de valor TTL de uma chave Redis.

Defina o valor TTL quando a chave estiver criando

A sintaxe a seguir é usada para definir o tempo de expiração para uma determinada chave Redis no horário da criação:

Definir temp_age 24 ex 5

A tecla "temp_age" expira após 5 segundos.

Defina o valor TTL após a criação da chave

Redis permite criar a chave primeiro e depois definir um tempo de expiração para a chave usando o comando Expire da seguinte forma:

Defina temp_age 24
Expire temp_age 5

Também é possível especificar uma data de validade como um registro de data e hora do Unix para uma determinada chave Redis usando o comando expireat da seguinte maneira:

Expireat Temp_age 1669929041

O registro de data e hora do UNIX especificado está associado à seguinte data legível por humanos:

Qui, 01 de dezembro de 2022 21:10:41 GMT

A tecla "temp_age" expira em 01-12-2022 às 21:10:41.

O comando expiretime

O comando expiretime retorna a data de validade como um registro de data e hora do UNIX, que é o número de segundos que é calculado a partir da data da época do Unix (1970-01-01T00: 00: 00z). Este comando é útil quando você tem várias chaves no banco de dados Redis com horários de validade e precisa saber a data exata de vencimento de uma chave específica. A seguir, é apresentada a sintaxe do comando expiretime:

ExpireTime Redis_key

O comando expiretime é muito rápido devido à sua complexidade do tempo de execução O (1). Se houver um tempo de validade associado à chave Redis, o comando expiretime retorna o tempo de expiração em segundos como um registro de data e hora do Unix. Caso contrário, o comando retorna um número negativo -1 ou -2:

-1 Resposta - a chave Redis existe, mas não há tempo de validade (TTL) associado a ela.

-2 Resposta - A chave Redis especificada não existe no banco de dados.

Caso de uso:

Vamos supor que a empresa da ABC precisa manter seu histórico de pedidos de peças de reposição apenas para a última semana. Portanto, eles usam um banco de dados Redis para armazenar o nome do cliente como a chave e o tipo de pedido como o valor. Ao mesmo tempo, eles armazenam cada chave com um tempo de validade de uma semana a partir da data da criação.

John compra um motor da empresa ABC em 2022-12-02. A empresa precisa adicionar este registro ao banco de dados Redis é o seguinte:

Defina Customer_john "Engine"

Além disso, a tecla “Customer_john” deve expirar após uma semana de 2022-12-02. Então, a data de validade é 2022-12-09 às 12:00. Nesse caso, usamos o comando expireat para definir a data de validade para esta chave.

O comando expireat aceita um registro de data e hora do UNIX em segundos. Precisamos fornecer a data de validade como um registro de data e hora do UNIX da seguinte maneira:

O timestamp associado ao Unix para a data de validade (2022-12-09 12:00) é 1670524200).

Vamos definir a data de validade da seguinte maneira:

Expireat Customer_john 1670524200

Aqui, adicionamos apenas um registro de pedido ao cliente ao banco de dados. Mas não é o caso quando se trata de um cenário do mundo real. Pode haver centenas de pedidos de clientes que são processados ​​por semana. É difícil acompanhar as datas de validade para todos os registros de pedido do cliente.

O comando expiretime é útil nesses tipos de cenários. Se você tem a chave Redis, o comando expiretime ajuda você a recuperar a data de validade associada em segundos a partir da data da época.

Vamos buscar a data de vencimento da chave do cliente_john da seguinte forma:

ExpireTime Customer_john

Como esperado, o timestamp Unix é devolvido. Se você converter esse valor de carimbo de data / hora em um formato legível pelo homem, ele deve dar a data exata que definimos na etapa anterior.

O comando expiretime pode ser usado quando você tiver uma grande quantidade de dados no seu banco de dados Redis e precisa saber sobre as datas de vencimento de qualquer uma das chaves.

Quando não há tempo de validade para uma chave Redis

Vamos criar uma chave Redis sem um tempo de validade (TTL) da seguinte maneira:

Definir no_ttl_key "sem cenário TTL"

Se executarmos o comando expiretime para esta chave, ele deve retornar o -1. Isso ocorre porque o "no_ttl_key" não está associado a um TTL.

ExpireTime no_ttl_key

Quando a chave não existe

Se executarmos o comando expiretime especificando uma chave que não existe no banco de dados Redis atual, ele deve retornar a resposta -2 da seguinte forma:

ExpireTime Dont_exist_key

Conclusão

Para concluir, o comando Redis ExpireTime é usado para recuperar a data de validade ou a hora de uma determinada chave. Ele retorna um registro de data e hora do Unix em segundos. Se não houver tempo de validade associado a uma determinada chave, o comando expiretime retorna negativo 1. O comando retorna -2 se a chave especificada não existir. Mais importante ainda, esse comando pode ser usado em aplicações de alto desempenho devido à sua execução rápida com a (1) complexidade do tempo.