Operações de Hash no Redis

RedisBeginner
Pratique Agora

Introdução

Neste laboratório, você explorará as operações de Hash do Redis, com foco em maneiras eficientes de gerenciar dados dentro de hashes. Começaremos usando o comando HMSET para definir múltiplos campos em um hash simultaneamente. Em seguida, você aprenderá como recuperar campos específicos usando HMGET, incrementar valores de campos com HINCRBY e verificar a existência de um campo dentro de um hash usando HEXISTS. Ao final deste laboratório, você terá uma sólida compreensão de como realizar operações comuns de hash no Redis.

Este é um Lab Guiado, que fornece instruções passo a passo para ajudá-lo a aprender e praticar. Siga as instruções cuidadosamente para completar cada etapa e ganhar experiência prática. Dados históricos mostram que este é um laboratório de nível iniciante com uma taxa de conclusão de 97%. Recebeu uma taxa de avaliações positivas de 100% dos estudantes.

Definir Múltiplos Campos com HMSET

Nesta etapa, exploraremos o comando HMSET no Redis, que permite definir múltiplos campos de um hash de uma só vez. Isso é mais eficiente do que definir cada campo individualmente usando o comando HSET.

Primeiro, vamos conectar ao servidor Redis usando o comando redis-cli. Abra um terminal no seu diretório ~/project e digite:

redis-cli

Você deve ver o prompt do Redis: 127.0.0.1:6379>.

Agora, vamos usar o comando HMSET. A sintaxe é:

HMSET key field value [field value ...]

Onde:

  • key é o nome do hash.
  • field é o nome do campo dentro do hash.
  • value é o valor a ser atribuído ao campo.

Vamos criar um hash chamado user:1001 e definir múltiplos campos para ele: name, age e city.

HMSET user:1001 name "John Doe" age 30 city "New York"

Você deve ver a saída OK, que indica que o comando foi bem-sucedido.

Para verificar se os campos foram definidos corretamente, você pode usar o comando HGETALL. No entanto, para este laboratório, focaremos em verificar os próprios comandos.

Você também pode usar HMSET para atualizar campos existentes. Por exemplo, vamos alterar o campo age para 31:

HMSET user:1001 age 31

Novamente, você deve ver OK.

Lembre-se de sair do redis-cli digitando exit. Isso é importante para que o comando seja registrado para verificação.

exit

Recuperar Múltiplos Campos com HMGET

Nesta etapa, aprenderemos como recuperar múltiplos campos de um hash Redis usando o comando HMGET. Isso é útil quando você só precisa de campos específicos e não quer recuperar o hash inteiro.

Primeiro, conecte-se ao servidor Redis usando o comando redis-cli:

redis-cli

Lembre-se que na etapa anterior, criamos um hash chamado user:1001 com os campos name, age e city. Vamos recuperar os campos name e age usando o comando HMGET.

A sintaxe para HMGET é:

HMGET key field [field ...]

Onde:

  • key é o nome do hash.
  • field é o nome do campo que você deseja recuperar. Você pode especificar múltiplos campos.

Para recuperar os campos name e age do hash user:1001, execute o seguinte comando:

HMGET user:1001 name age

Você deve ver uma saída semelhante a esta:

1) "John Doe"
2) "31"

A saída é um array de valores, correspondendo à ordem dos campos que você solicitou.

Se um campo não existir no hash, HMGET retornará nil para esse campo.

Lembre-se de sair do redis-cli digitando exit.

exit

Incrementar Valor de Campo com HINCRBY

Nesta etapa, aprenderemos como incrementar o valor de um campo em um hash Redis usando o comando HINCRBY. Este comando é particularmente útil para contadores e outros dados numéricos.

Primeiro, conecte-se ao servidor Redis usando o comando redis-cli:

redis-cli

Continuaremos usando o hash user:1001 que criamos nas etapas anteriores. Digamos que queremos rastrear o número de logins para este usuário. Podemos adicionar um campo logins ao hash e incrementá-lo cada vez que o usuário fizer login.

Primeiro, vamos adicionar o campo logins e inicializá-lo em 0. Podemos usar HMSET para isso:

HMSET user:1001 logins 0

Você deve ver OK. Agora, vamos usar HINCRBY para incrementar o campo logins.

A sintaxe para HINCRBY é:

HINCRBY key field increment

Onde:

  • key é o nome do hash.
  • field é o nome do campo que você deseja incrementar.
  • increment é a quantidade pela qual você deseja incrementar o campo.

Para incrementar o campo logins em 1, execute o seguinte comando:

HINCRBY user:1001 logins 1

Você deve ver a saída (integer) 1, que é o novo valor do campo logins.

Vamos incrementar o campo logins novamente:

HINCRBY user:1001 logins 1

A saída será (integer) 2.

Você também pode incrementar por valores diferentes de 1.

Lembre-se de sair do redis-cli digitando exit.

exit

Verificar Existência de Campo com HEXISTS

Nesta etapa, aprenderemos como verificar se um campo existe em um hash Redis usando o comando HEXISTS. Isso é útil para verificar a presença de um campo antes de tentar recuperá-lo ou modificá-lo.

Primeiro, conecte-se ao servidor Redis usando o comando redis-cli:

redis-cli

Continuaremos usando o hash user:1001 que criamos nas etapas anteriores. Sabemos que este hash tem campos como name, age, city e logins. Vamos usar HEXISTS para verificar se o campo name existe.

A sintaxe para HEXISTS é:

HEXISTS key field

Onde:

  • key é o nome do hash.
  • field é o nome do campo que você deseja verificar.

Para verificar se o campo name existe no hash user:1001, execute o seguinte comando:

HEXISTS user:1001 name

Você deve ver a saída (integer) 1, que indica que o campo existe.

Agora, vamos verificar um campo que não existe, como country:

HEXISTS user:1001 country

Você deve ver a saída (integer) 0, que indica que o campo não existe.

Lembre-se de sair do redis-cli digitando exit.

exit

Resumo

Neste laboratório, você aprendeu sobre as operações de Hash do Redis. Você começou usando o comando HMSET para definir eficientemente múltiplos campos em um hash. Em seguida, explorou como recuperar campos específicos usando HMGET, incrementar valores de campos com HINCRBY e verificar a existência de um campo dentro de um hash usando HEXISTS. Esses comandos fornecem uma base para gerenciar dados de forma eficaz dentro de hashes Redis.