Neste guia, vamos explorar como expirar as chaves em redis. Como o título sugere, vamos nos concentrar no vencimento da hash -chave, mas o conceito geral se aplica a outras chaves também.”
Pré -requisitos
Para executar as etapas demonstradas neste guia, você precisará dos seguintes componentes prontos para ir:
Redis Keys
As chaves Redis são persistentes por padrão, o que significa que qualquer entrada permanecerá intacta, a menos que seja excluído manualmente. Embora essa configuração seja boa em geral, há situações em que você pode querer que as chaves expirem após um certo período de tempo. Em outras palavras, você gostaria volátil chaves.
Agora, o Redis suporta vários tipos de chaves, categorizados pelo tipo de dados. Aqui estão alguns dos tipos de dados mais comuns que você encontrará:
Confira a documentação oficial do Redis sobre os tipos de dados para obter informações mais detalhadas. Para os fins deste guia, estaremos focados nas chaves de hash.
Chaves de hash
Em Redis, hashes são mapas entre campos (string) e valores (string). Devido a essa estrutura, é o tipo de dados perfeito para representar objetos. Vamos explicar com um exemplo. Dê uma olhada na seguinte estrutura:
Aqui, podemos considerar user_database como uma chave de hash. Dentro deste hash, temos vários pares de valor de campo, representando nome de usuário e senha. Vamos implementá -lo em Redis:
$ Hmset user_database user_1 "David" pass_1 "senha_1"
$ Hmset user_database user_2 "Alex" pass_2 "senha_2"
$ Hmset user_database user_3 "Mason" pass_3 "senha_3"
Como demonstrado, Redis usa o comando hmset para registrar as chaves de hash. Para recuperar os dados armazenados na chave, precisamos usar o comando hget:
$ Hget user_database user_1
$ Hget user_database pass_3
Para obter as informações de todos os campos de uma só vez, use o comando HGETALL:
$ Hgetall user_database
Em Redis, uma chave de hash pode ter até 2^32 - 1 (mais de 4 bilhões) pares de valor de campo. Na maioria das vezes, hashes são usados para representar objetos. No entanto, devido à sua natureza, os hashes podem ser úteis em inúmeras situações.
Redis Key expira
Todos os objetos Redis têm um tempo de validade. Por padrão, o valor está definido como nunca. No entanto, alterando esse valor, podemos definir as teclas Redis que expirarão automaticamente após um período fixo de tempo. Depois que o tempo de validade é passado, a chave é excluída do banco de dados.
Embora seja uma explicação generalizada, o mecanismo real de validade -chave é um tanto complicado. Confira a documentação oficial do Redis para obter uma explicação aprofundada do mecanismo de validade-chave.
Para definir um tempo de validade, usaremos o comando Expire. O exemplo a seguir demonstra seu uso:
$ Set Hello "The Quick Brown Fox"
$ Expire olá 999
Aqui, a chave do olá expirará em 999 segundos. Para verificar o tempo restante para uma chave para expirar, use o comando ttl:
$ Ttl Olá
A saída retornará o tempo restante antes que a chave expire. No entanto, em caso de erro, o TTL pode retornar valores diferentes:
Chave de hash expirando
Agora que entendemos as chaves de hash e como a expiração das chaves funciona, hora de colocá -las em ação.
Continuando a partir do exemplo de hash -chave, vamos colocar um tempo de validade para user_database:
$ Expire user_database 999
Para verificar esta ação, verifique o valor TTL do user_database:
$ Ttl user_database
Expirar opções
O comando Expire vem com algumas opções adicionais que implementam algumas condições adicionais ao definir o tempo de expiração. Esses são os seguintes:
Ao implementar as opções, o comando ficaria assim:
$ Expire
Continuando a partir do exemplo anterior, vamos atualizar o tempo de expiração do user_database:
$ Expire user_database 9999 gt
Verifique se o tempo de validade foi atualizado:
$ Ttl user_database
Pensamentos finais
Neste guia, exploramos o vencimento de uma chave de hash em Redis. Redis vem com um comando dedicado expire para definir um tempo de validade para as chaves. Demonstramos como usar este comando para expirar uma chave de demonstração. Também exploramos várias opções que o comando expire suporta.
Interessado em aprender mais sobre Redis? A subcategoria Redis está cheia de guias detalhados. Saiba mais sobre comandos Redis comuns, o comando BitCount, Pipelining etc.
Computação feliz!