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