Redis Hash Manipulação
Redis Hash pode ser identificado como uma estrutura de dados de pares de valor de campo. Isso pode ser armazenado em uma chave Redis especificada, como mostrado na ilustração a seguir:
Geralmente, os valores de campo de hash podem armazenar dados de string, número inteiro e flutuação. Uma das operações atômicas que podemos executar em hashes é o incremento ou decréscimo dos valores inteiros atribuídos a um determinado campo de hash.
O comando hincrby é usado para executar o incremento/diminuição de um valor inteiro. Nas seções seguintes, discutiremos mais sobre o uso prático do comando Hincrby Hash.
O comando hincrby
Sintaxe:
Hincrby redis_key hash_field_name increment_by_value
Redis_key: A chave de nível superior da loja Redis
hash_field_name: O identificador único do campo de hash
increment_by_value: O valor inteiro do argumento de incremento
O valor de retorno do comando hincrby é um número inteiro. É o valor do campo de hash após a operação ter sido realizada. O increment_by_value O argumento suporta os números inteiros assinados de 64 bits que permitem a passagem de números positivos e negativos.
Quando o campo de hash dado não existe
Digamos que temos uma chave de hash redis Usuário: 001 com um campo nomeado eu ia. O valor do eu ia O campo é 10. Se tentarmos incrementar o valor do hash em 5 para uma chave inexistente idade, Redis criará um novo campo idade e atribuir seu valor a 5.
Quando a tecla Redis especificada não existe
Suponha que passamos a chave como Usuário: 002 para o comando hincrby com o campo idade e o valor de incremento de 10. Desde o Usuário: 002 A chave não está disponível na loja Redis, ela criará uma nova chave Usuário: 002 com um campo etário. O valor do campo etário será 10 qual é o valor do argumento de incremento passado.
Uso prático
Existem muitos casos de uso do mundo real do comando hincrby hash:
A principal vantagem da operação hincrby é que ela não precisa de uma operação de leitura explícita para atualizar o valor do hash. Você pode atualizar diretamente o valor de hash da loja Redis. Isso torna as operações muito rápido.
Exemplo 01 - captura o uso e custo por usuário
Vamos supor que precisamos armazenar os dados de uso e custo por usuário em um determinado sistema. Portanto, identificaremos cada usuário com uma chave Redis. O uso e o custo serão os campos de hash para essa chave Redis em particular.
Usuário do HMSET: 001 Uso 50 Custo 1500
Podemos usar o comando HMSET HASH para definir os vários campos para hash.
Vamos verificar se o usuário: 001 hash é armazenado corretamente no armazenamento de dados.
Usuário HGETALL: 001
Saída:
Suponha que o usuário usasse outras 10 unidades de recursos dentro do sistema e custaria mais 500 dólares. Agora, podemos usar facilmente o comando hincrby hash para atualizar os dados para Usuário: 001.
Usuário hincrby: 001 Uso 10
Usuário hincrby: 001 Custo 500
Saída:
Vamos verificar o usuário: 001 valores de hash.
Usuário HGETALL: 001
Saída:
Exemplo 02 - Diminuir a contagem de unidades no carrinho de compras
Nos carrinhos de compras, sempre precisamos executar as operações de decréscimo na contagem de itens quando o usuário remove um item. Vamos armazenar o item conta para o Usuário: 002.
Usuário HMSET: 002 Item 10 Itemb 5
Nesse caso, atribuímos Item e Itemb contam como 10 e 5, respectivamente. Vamos verificar o usuário: 002 dados.
Usuário HGETALL: 002
Saída:
Vamos supor que o Usuário: 002 Remove 2 item e 5 itens. O comando hincrby pode ser usado para executar esta operação de decréscimo passando -2 e -5 inteiros como os argumentos de incremento.
Usuário hincrby: 002 Item -2
Usuário hincrby: 002 Itemb -5
Saída:
O comando hincrby é poderoso e eficiente, onde as operações de incremento e decrementação podem ser executadas usando o mesmo comando com um argumento de incremento assinado. Este comando tem complexidade de tempo constante. Portanto, é muito rápido realizar as operações de incremento/decrementação em hashes.
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. Os hashes podem ser usados para representar e manipular objetos e dados simples de maneira eficaz. Redis suporta várias operações de hash. Hincrby é um dos comandos populares para incrementar e diminuir os valores inteiros para um determinado campo de hash. Ele suporta os números inteiros assinados de 64 bits como o valor de incremento. Portanto, tanto as operações de incremento quanto decrescente podem ser executadas usando o mesmo comando.