Redis Hexists

Redis Hexists

Redis Hashes

O mapa é uma estrutura de dados amplamente usada no contexto da programação. É uma técnica amplamente usada para armazenar os pares de valor-chave. Cada tecla mapeia para um determinado valor, como mostrado no seguinte:

Redis Hashes segue a mesma estrutura interna. Mas eles não permitirão que você armazene tipos de valor complexos, como conjunto, listar ou hash. Existem algumas maneiras de apontar os valores do campo de hash para os outros tipos de dados complexos, mas não é direto.

Uso prático de Redis Hashes

Redis Hashes é muito eficaz em dois cenários diferentes:

  1. Representação de objetos
  2. Armazene pequenos valores de dados de forma compacta

Representação de objetos usando hashes redis

Na programação, os objetos representam as entidades do mundo real com seus estados e comportamentos. Geralmente, um objeto possui um identificador (nome) e propriedades internas, como mostrado no seguinte:

Redis Hashes é capaz de armazenar esse tipo de objeto em seu armazenamento. Sabemos que o Redis é o armazenamento do par de valores-chave. Portanto, o objeto anterior pode ser representado como mostrado no seguinte:

Chave : Usuário: 001

Valor : Propriedades internas como um hash redis

A representação mais detalhada é mostrada no seguinte.

Chave : Usuário: 001

Valor : "Nome" => "Mike"

“Idade” => “35”

“País” => “EUA”

“IsMarried” => “Verdadeiro”

A parte de cor verde é um valor do tipo Redis Hash. Nesse caso, temos quatro campos em nosso hash e a chave é usuário: 001.

Armazene pequenos valores de dados de forma compacta

Imagine que vamos armazenar os 100000 pares de valor de campo em um banco de dados Redis. A maneira mais típica é criar as 100000 teclas de nível superior apontando para os valores relevantes. Esta metodologia não será eficiente, pois você pode pensar. Portanto, podemos usar os hashes para otimizar o desempenho.

Há um ganho de desempenho em hashes sempre que um hash tem um pequeno número de campos. Redis aumenta a eficiência de acesso em uma quantidade considerável. Chamamos isso de pequeno otimização de armazenamento de hash de Redis. Portanto, podemos manter os 1000 hashes cada um com 100 campos internos, como mostrado no seguinte:

A melhor coisa sobre hashes é que eles podem armazenar até 2^32-1 pares de valor de campo no formato de texto simples. É uma grande quantidade de dados, mais de 4 bilhões.

Redis Hash Comandos

Redis permite que você realize operações em hashes. Existem cerca de 15 comandos de hash disponíveis para uso, como hset, hexista, hget, hgetall, etc. Existem algumas operações atômicas disponíveis para executar em valores de campo de hash numéricos. É o incremento atômico e decréscimo em valores numéricos usando os comandos hincrby e hincrbyfloat.

O comando hexista

O comando hexista é usado para verificar se um determinado campo está disponível no hash particular em uma chave especificada. Este comando tem uma complexidade de tempo constante, que é indicada por Big O (1). Portanto, é muito eficiente usar.

Sintaxe:

Hexists key_name field_name

key_name : Esta é a chave de nível superior redis deste hash.

campo_name : Este é o nome do campo de hash.

Valor de retorno de comando

O comando hexista retorna um valor inteiro de 1 ou 0 com base nos resultados da avaliação de comando. Ele retorna a 1 se o campo estiver disponível no hash especificado. Se o campo ou a chave de hash não estiver disponível, ele retornará a 0.

Uso prático do comando Hexists

Vamos criar um hash com um campo e verificar como o comando funciona. Podemos usar o comando hset para criar um hash com um par de valor de campo.

Usuário hset: 1 nome Mike

Em seguida, verificamos se o hash foi adicionado ao banco de dados Redis com sucesso. O comando hgetall pode ser usado para buscar todos os pares de valor de campo para uma determinada chave de hash.

Usuário HGETALL: 1

Saída:

Agora, vamos verificar o comportamento dos comandos hexéticos neste hash:

Usuário hexista: 1 nome

Nesse cenário, o usuário: 1 é a chave de hash. O nome é o nome do campo de hash. Como o campo de nome está disponível no usuário: 1 hash, ele deve retornar a 1.

Vamos verificar o comando com um campo que não está disponível no hash dado.

Usuário hexista: 1 idade

Nesse caso, o campo etário não está disponível no usuário: 1 hash. Portanto, a saída é 0.

Dessa forma, você pode manipular os campos de hash para sua existência em uma determinada chave de hash. Esta é uma operação muito eficiente em termos de tempo e é útil em manipulações de objetos nos bancos de dados Redis. Leva um tempo constante para verificar a existência do 1º campo ou do 100º campo. Portanto, é recomendável usar Redis Hashes sempre que você precisar armazenar objetos ou dados simples.

Conclusão

Redis pode armazenar diferentes tipos de estruturas de dados para uma chave específica. Os hashes são uma das estruturas de dados mais populares usadas nos bancos de dados Redis. Hashes podem ser usados ​​para representar e manipular simples os objetos e dados de maneira eficaz. Redis suporta várias operações de hash. Os hexipos são um dos comandos populares para verificar a existência de um determinado campo de hash em uma chave de hash.