Redis HScan

Redis HScan
Redis Hashes é uma coleção de campos de string e pares de valor de string. É um candidato ideal para representar entidades do mundo real dentro da mente. Os hashes são muito eficientes em memória e cada um pode conter mais de quatro bilhões de pares de valor de campo.

Como os hashes redis permitem armazenar vastas quantidades de pares de valor de campo, a iteração sobre esse tipo de coleção também deve ser facilitada. Portanto, a iteração incremental baseada em cursor foi implementada com o comando hscan. Neste guia, focaremos mais no comando do HScan e em seus casos de uso.

O comando hscan

O comando hscan é usado para iterar sobre os campos e valores de um hash redis armazenado em uma determinada chave. Ele não bloqueia o servidor como chaves ou comandos de Smembers. Em vez. A única desvantagem desse comportamento é que o comando do HScan tem uma garantia limitada dos elementos de hash retornados em um determinado momento, porque o hash pode ser alterado durante as iterações. Não é o caso de bloquear comandos como Smembers, que garantem que todos os elementos serão devolvidos em um determinado momento.

Sintaxe

O comando do HScan deriva do comando de varredura. Portanto, o comando hscan tem quase a mesma sintaxe que a varredura, exceto que o comando de varredura não requer um chave Como o primeiro argumento, porque ele itera sobre as chaves armazenadas no banco de dados Redis atual.

HSCAN HASH_KEY CURSOR [Padrão de correspondência] [contagem count_per_iteration]

Chave de hash: A chave do hash.

Cursor: O valor do cursor começa em 0 e termina em 0 se uma iteração completa tiver sido concluída.

CORRESPONDER: Um padrão a corresponder ao recuperar elementos em cada iteração. Somente os elementos correspondentes serão devolvidos ao cliente.

CONTAR: O número de elementos que serão devolvidos em cada iteração.

O conjunto de resultados retornados por iteração contém alguns elementos. O primeiro é um número inteiro não assinado de 64 bits que representa o cursor a ser passado para a próxima chamada. Além disso, uma variedade de pares de valor de campo de hash será devolvida.

Caso de uso 01: Obtenha todas as informações de um funcionário

Vamos supor que uma empresa precise manter os detalhes de seus funcionários em um armazenamento de dados com consumo limitado de memória. Portanto, o Hash Redis é a estrutura de dados ideal a ser usada neste caso, porque vamos representar objetos de funcionários do mundo real com suas propriedades.

Primeiro, vamos criar um hash redis CompanyAempDetails: 1002 com alguns pares de valor de campo da seguinte forma. O comando hmset pode ser usado para adicionar vários pares de valor de campo a um hash.

Hmset CompanyAempDetails: 1002 Empid 1002 EmpName "Jack Anwar" Empsalário $ 40000 Empaddress "23/4, Redis Avenue, Nova York" Empcontact +9569492022 Empage 45 Empuge OR + EMPVEHICLETEZEZ EMPDESSINGSIGNAGION "

Vamos iterar o objeto do funcionário e recuperar todas as informações usando o comando hscan o seguinte. Precisamos começar do cursor 0.

HScan CompanyAempDetails: 1002 0

Saída

O valor do cursor é 0 no conjunto de resultados retornados, o que significa que todos os elementos foram retornados pela primeira iteração. Como o número de elementos é pequeno, o Redis Hashes representa esses elementos usando uma codificação embalada de alocação única. Portanto, até que um tamanho máximo de pacote ou número de elementos seja atendido, o comando retornará todos os elementos no hash. Se o argumento da contagem for especificado, será ignorado nesse caso. Isso é chamado de iteração completa porque, no final da primeira iteração, recebemos todos os nove elementos. Se tivéssemos dezenas de pares de valor de campo, eles seriam representados como uma tabela de hash na memória. Então, levaria várias iterações para devolver todos os elementos.

Use Caso 02: Obtenha a contagem de visitantes para sites cujo domínio de nível superior é “.com ”

O comando hscan pode ser usado para filtrar os elementos retornados com base em uma correspondência de padrão. Um argumento de partida deve ser aprovado.

Vamos supor que uma empresa precisa rastrear a conta dos visitantes para seus sites. Podemos criar um hash abccompany: visitantes e adicionar elementos da seguinte maneira.

Hmset abccompany: visitantes "www.abc.eu "200000" www.HTRS.com "123000" www.KDKDK.com "560000" www.QPSPs.LK "120000" www.dioso.com "90000

Podemos usar o comando hgetall para verificar como é o hash.

HGETALL ABCCOMPANY: visitantes

Agora a empresa tem um requisito para iterar sobre esse hash e recuperar a conta do visitante para sites com o ““.com ” domínio de nível superior. Vamos passar o argumento da partida para o comando hscan da seguinte maneira.

HScan abccompany: visitantes 0 partida *.com*

Isso deve devolver idealmente três membros de cinco membros, conforme mostrado no seguinte.

Conclusão

Em resumo, o comando hscan é usado para iterar sobre uma coleção de pares de valor de campo de hash. Este comando é derivado do comando de varredura pai, mas com uma ligeira mudança no primeiro argumento a ser aprovada onde o HScan toma a chave do hash como o primeiro argumento. Conforme discutido nos casos de uso, o comando hscan pode ser usado de maneiras diferentes, especificando os argumentos de correspondência e contagem, onde você pode recuperar elementos que correspondem a um padrão específico e limitam a contagem de elementos retornados por iteração. No geral, o comando hscan pode ser útil ao recuperar elementos de uma coleção sem bloquear o servidor ou o cliente.