Redis Pttl

Redis Pttl

Redis usa a abordagem do par de valores-chave para armazenar seus dados. Portanto, todos os valores de dados armazenados em um banco de dados Redis são referenciados por uma chave única.

Essas chaves tendem a viver para sempre até que você as exclua. Geralmente, podemos usar o comando 'set' para criar uma nova chave e atribuir um valor a ele. Em alguns cenários, pode ser necessário definir um tempo limite para uma chave.

Exemplo - Defina a expiração do link de redefinição de senha com a chave Redis

Vamos supor que um usuário precise redefinir a senha da sua conta no Twitter. O processo usual é que o usuário clica no botão 'Esquecido senha' na janela de login. Isso enviaria um email para o usuário com um link de redefinição de senha. Esses links vivem apenas por alguns minutos ou dias. Então o link expirará. Podemos alcançar esse tipo de comportamento passando uma chave Redis no URL. Sempre que o usuário clicar neste link, ele será redirecionado para a página de redefinição de senha se a chave fornecida não tiver expirado.

Crie uma chave em Redis

O comando Redis 'Set' pode ser usado para criar um novo par de valores-chave no armazenamento de dados Redis, como mostrado no seguinte.

Definir senhaexpirationLink: Usuário: 01 OldPass: 123456

O 'PasswordExpirationLink: Usuário: 01' é a chave Redis e o valor é 'OldPass: 123456'.

Defina um tempo limite para a chave

Como a chave foi criada, podemos definir um tempo limite nesta chave. Existem duas maneiras de definir um tempo limite.

  1. Usando o comando Redis 'Set'
  2. Usando o comando 'Expire' Redis

1. Usando o comando Redis 'Set'

O comando 'set' tem um parâmetro chamado 'ex' que pode ser usado para definir o tempo limite em segundos. Vamos criar uma chave com um valor de tempo limite.

Definir senhaexpirationLink: Usuário: 02 OldPass: 123456 Ex 120

A chave 'PasswordExpirationLink: Usuário: 02' expirará em 120 segundos.

2. Usando o comando 'Expire' Redis

O 'Expire' é o comando mais popular para definir um valor de tempo limite em uma chave.

Expire PasswordExpirationLink: Usuário: 02 120

Isso é bastante simples em comparação com o comando 'set'. A tecla 'PasswordExpirationLink: Usuário: 02' expirará em 120 segundos.

Agora, deve haver uma maneira de calcular ou consultar o tempo restante para viver de uma chave. O comando 'pttl' permite que os usuários do Redis consultem isso.

O comando 'pttl'

O 'PTTL' retorna quanto tempo resta antes que uma chave Redis expire. Se não houver valor de tempo limite associado a uma chave, este comando retornará -1. Se a chave Redis não existir, ela retornará -2.

Sintaxe

Chave pttl

A 'chave' é o nome de chave Redis.

Se a chave Redis existir e a chave estiver associada a um tempo de validade, o comando 'Pttl' retornará o tempo restante para morar em milissegundos. Este comando é muito semelhante ao 'TTL', onde a única diferença é que 'TTL' retorna o tempo restante para viver em segundos.

Vamos definir o tempo de expiração 'PasswordExpiration: Usuário: 02' da chave para 120 segundos, como no exemplo anterior.

Expire PasswordExpirationLink: Usuário: 02 120

Em seguida, podemos usar o comando 'pttl' para verificar o tempo restante para viver para a chave 'senha senhaxpirationlink: user: 02'.

pttl senhaexpirationlink: Usuário: 02

Saída após executar o comando acima várias vezes:

Definimos o tempo de expiração para 120 segundos, que é 120000 milissegundos. A saída verifica que. O primeiro comando pttl retorna 112030, o que significa que o 'PasswordExpirationLink: Usuário: 02' TENHA EXPPANHE APÓS 112030 MILILISEGONDS ou 112.03 segundos.

Na última linha, o -2 foi devolvido. Isso diz que a tecla 'PasswordExpirationLink: Usuário: 02' já está excluída ou não existe mais. Isso significa que a chave já chegou ao tempo de validade e acabou para sempre.

O comando 'pttl' em uma chave sem tempo de validade

Vamos executar o comando 'pttl' em uma chave que não tem um tempo de validade associado a ele. Primeiro, vamos criar uma nova chave 'PasswordExpirationLink: Usuário: 05'.

Definir senhaexpirationLink: Usuário: 05 OldPass: 123456

Em seguida, estaremos executando o comando 'pttl' na chave 'senhaexpirationlink: user: 05'.

PTTL PasswordExpirationLink: Usuário: 05

Saída:

Como esperado, retornou -1, o que significa que não há tempo limite associado a esta chave.

Com base no valor de retorno do comando 'pttl', podemos deixar o link de redefinição de senha expirar que discutimos no exemplo anterior.

Conclusão

Como o Redis é um armazenamento de dados baseado em valor-chave, as chaves são a referência direta para qualquer valor de dados. O comando 'Set' Redis é usado para criar dados de valor-chave no banco de dados. Este comando nos permite definir um tempo limite ao criar o par de valores-chave. Outra maneira de definir os tempos limite para as chaves é usar o comando 'Expire'. Nos dois lados, você pode definir o tempo de expiração em segundos. O comando 'pttl' é útil quando precisamos consultar o tempo restante para viver para uma chave Redis. Ele retorna o tempo restante em milissegundos, que é diferente do comando 'ttl'.