Skip to content

Instantly share code, notes, and snippets.

@dehsilvadeveloper
Last active January 9, 2025 11:56
Show Gist options
  • Save dehsilvadeveloper/820adcd09282bdfbd779f9224a535aab to your computer and use it in GitHub Desktop.
Save dehsilvadeveloper/820adcd09282bdfbd779f9224a535aab to your computer and use it in GitHub Desktop.
Redis - Data types (Strings, Hashes, Lists and Sets)

Redis - Estrutura de dados (Strings, Hashes, Lists e Sets)

Redis - Data types (Strings, Hashes, Lists and Sets)

O que vamos ver ?

Nós vamos conversar sobre as seguintes estruturas de dados disponíveis no Redis: string, hash, list and set.

Redis Playground

Se você quiser utilizar uma aplicação online para testar seu código Redis, você pode usar o seguinte link:

https://onecompiler.com/redis

Strings

O tipo de estrutura de dado mais básico.

Strings são de propósito múltiplo. Elas podem armazenar dados tão simples quanto um número inteiro ou tão complexos quanto um arquivo de imagem JPEG.

Criando nova chave

// Setting new key
SET name "Valentina"

Obtendo valor de chave

// Getting value of key
GET name // Valentina

Removendo chave

// Deleting key
DEL name

Incrementando valor de chave

// Incrementing the key (always +1)
INCR total

Decrementando valor de chave

// Decrementing the key (always -1)
DECR total

Hashes

Hash é um objeto representando o mapeamento entre campos e valores.

Criando nova chave

// Setting new key
HSET user:1 name Valentina gender Female 

Obtendo todos os valores de chave

// Getting all fields and values related to the specified key
HGETALL user:1

/*
Output:
1) "name" 
2) "Valentina" 
3) "gender" 
4) "Female"
*/

Obtendo valor de campo específico de chave

// Getting field value of key
HGET user:1 name // Valentina

Removendo campo de chave

// Deleting field of key
HDEL user:1 gender

Incrementando valor de campo de chave

// Incrementing the key by the value informed (+x)
HINCRBY book:1 price 5

Decrementando valor de campo de chave

Aqui utilizamos HINCRBY passando um valor negativo para realizar o decremento.

// Decrementing the key by the value informed (-x)
HINCRBY book:1 price -2

Lists

List é uma lista ordenada simples de strings.

Adicionando novo item na lista

O item é adicionado no final da lista.

LPUSH teams flamengo

Obtendo o tamanho da lista

LLEN teams // Output: 1

Retornando um intervalo de valores presentes na lista

Usando o comando LRANGE informamos o nome da chave, o indice de inicio e o indice de fim.

LRANGE teams 0 10

Removendo um item da lista

LPOP irá remover o primeiro item da lista (comportamento padrão), contando a partir da esquerda.

Também é possível informar um contador e remover múltiplos itens de uma vez.

Os itens removidos são retornados pelo comando.

LPOP teams

LPOP teams 2

Sets

Set é uma lista não ordenada de strings.

Adicionando novo item no set

// Adding item
SADD colors red

Obtendo lista de itens de set

// Getting list of items
SMEMBERS colors

Removendo item do set

// Deleting item
SREM colors "yellow"

Verficando se um item faz parte do set

Os valores retornados são 1 para true e 0 (zero) para false.

// Checking if exists on the set
SISMEMBER colors "pink"

Obtendo a intersecção de dois sets

É possível obter os valores da inersecção de 2 ou mais sets, ou seja, os valores que estes sets têm em comum.

// Filling sets
SADD moviegenres "romance"
SADD moviegenres "adventure"
SADD moviegenres "horror"
SADD moviegenres "mistery"

SADD cartoongenres "adventure"
SADD cartoongenres "drama"
SADD cartoongenres "romance"
SADD cartoongenres "comedy"

// Getting the intersection
SINTER moviegenres cartoongenres

/*
Output:
1) "romance" 
2) "adventure"
*/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment