Redis expire a chave de hash

Redis expire a chave de hash
““Redis é um armazenamento de estrutura de dados de memória aberta, usada como um banco de dados de valor-chave distribuído e distribuído. Devido à sua natureza, Redis é um armazenamento de dados de alto desempenho, adequado para implementação em diferentes situações, por exemplo, cache, corretor de mensagens, etc.

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:

  • Um sistema Linux adequadamente configurado. Saiba mais sobre como instalar o Ubuntu.
  • Servidor Redis instalado e configurado. Saiba mais sobre a instalação do Redis no Ubuntu.

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á:

  • Cordas
  • Listas
  • Conjuntos
  • Hashes

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:

  • user_database
  • David: Password_1
  • Alex: Password_2
  • Mason: Password_3

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:

  • -2 Se a chave não existir.
  • -1 Se a chave não tiver expiração associada.

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:

  • Nx: o tempo de expiração é definido apenas se a chave não tiver expiração.
  • Xx: o tempo de expiração é definido apenas se a chave tiver um vencimento existente.
  • GT: O novo tempo de expiração é definido se o novo vencimento for maior que o atual.
  • LT: O novo tempo de expiração é definido se o novo vencimento for menor que o atual.

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!