Exemplo de uso de um hash redis é armazenar informações sobre uma postagem. Um hash pode ser usado para armazenar informações como post_id, autor_name, publish_data, categoria e mais.
Os hashes são um dos tipos de dados fundamentais e se você é novo no redis ou um profissional experiente, saber como trabalhar com hashes pode ser muito benéfico.
A essência deste tutorial é fornecer o conhecimento fundamental para trabalhar com hashes em redis.
Neste guia, usamos a versão mais recente do servidor Redis em execução em um sistema Debian 11. Embora você não precise replicar esse ambiente, recomendamos o uso da CLI nativa Redis CLI. Usando o Redis CLI garantirá que você obtenha saídas semelhantes que este guia.
Como criar um hash
A primeira coisa que aprenderemos é como criar um hash em redis.
Abra o Redis CLI e use o comando hset para criar um hash. O comando leva o nome da chave de hash, o campo e o valor como seus argumentos.
Veja o exemplo mostrado abaixo:
127.0.0.1: 6379> título da postagem hset "Hello World Title."
(Inteiro) 1
O comando acima cria um hash com a chave de postagem e um campo de título e seu valor correspondente.
O comando retorna um número inteiro 1 se o hash for criado com sucesso.
É bom garantir que você forneça todos os argumentos no comando hset para evitar erros. Por exemplo, o comando a seguir retorna um erro como um argumento está faltando no comando:
127.0.0.1: 6379> hset post post_id
(Erro) Número errado de argumentos para 'hset' comando
Nota: Se você executar o comando hset onde já existe um hash, Redis substituirá o conteúdo do antigo hash com o novo.
Por exemplo, dê uma olhada no comando abaixo:
127.0.0.1: 6379> título do post hset "título substituído."
(Inteiro) 0
Nesse caso, o comando hset retorna um número inteiro 0 se o valor especificado for atualizado com sucesso.
Para criar vários campos e seus valores correspondentes em um único comando, use o comando hmset.
Por exemplo:
127.0.0.1: 6379> hmset post post_id 1 título "Hello world title."Author_name" Linuxhint "Publish_date" 02/02/2022 "Categpgry" Linux "
OK
O comando retorna a string "ok" se o hash for criado com sucesso.
Como buscar informações de um hash
Vamos discutir os vários comandos que você pode usar para buscar informações de um hash redis.
Para obter o valor associado a um campo específico, use o comando hget. O comando assume o nome de campo como o argumento.
Por exemplo:
127.0.0.1: 6379> HGET POST TITLE
"Hello World Title."
O comando restaurará o valor associado da chave especificada.
Para obter todas as chaves em um hash, use o comando hgetall. Este comando leva a chave do hash como o argumento.
Considere o exemplo mostrado abaixo:
127.0.0.1: 6379> HGETALL POST
1) "Título"
2) "Hello World Title."
3) "post_id"
4) "1"
5) "Author_name"
6) "Linuxhint"
7) "Publish_date"
8) "02/02/2022"
9) "Categoria"
10) "Linux"
Conforme mostrado na saída de exemplo acima, o comando hgetall retorna os campos e seus valores associados.
Se você deseja buscar valores de vários campos simultaneamente, você pode usar o comando hmget. O comando pega a chave e os campos que você deseja recuperar como os argumentos.
Dê uma olhada no exemplo mostrado abaixo:
127.0.0.1: 6379> hmget post post_id título autor_name
1) "1"
2) "Hello World Title."
3) "Linuxhint"
O exemplo acima especifica a chave e vários campos, e o comando retorna os valores correspondentes.
Verifique se o campo especificado existe; Caso contrário, Redis retornará um valor nulo.
Suponha que você só queira ver os campos em um hash específico, mas não seus valores correspondentes? Para isso, você pode usar o comando HKEYS:
127.0.0.1: 6379> HKEYS POST
1) "Título"
2) "post_id"
3) "Author_name"
4) "Publish_date"
5) "Categoria"
No exemplo acima, o comando hkey toma a chave como argumento e retorna todos os campos no hash.
Da mesma forma, você pode usar o comando HVALS para recuperar os valores no hash.
127.0.0.1: 6379> HVALS POST
1) "Hello World Title."
2) "1"
3) "Linuxhint"
4) "02/02/2022"
5) "Linux"
O comando retornará apenas os valores e não seus campos.
Para obter um valor inteiro do número total de campos no hash, use o comando hval.
127.0.0.1: 6379> HLEN POST
(Inteiro) 5
O comando de exemplo acima mostra que o hash contém cinco campos.
Excluindo chaves em um hash
Para remover um campo de um hash específico, você pode usar o comando hdel. O comando leva campos únicos ou múltiplos como argumentos.
Exemplo:
127.0.0.1: 6379> HDEL POST POST_ID Título
(Inteiro) 2
O comando retorna um valor inteiro indicando o número de campos removidos do hash.
Se o campo não existir, o comando o ignora e apenas remove os existentes.
Para verificar se existe um campo no hash, use o comando Hexists.
127.0.0.1: 6379> Hexists Post Author_name
(Inteiro) 1
O comando retorna inteiro 1 se a chave existir e 0 se não.
Conclusão
O tutorial abrange comandos e exemplos a serem usados ao criar e trabalhar com hashes em redis. Existem outros comandos além do escopo deste tutorial. Verifique a documentação para saber mais.
Obrigado pela leitura!