Estruturas de dados no Redis
Tags: redis, tutorial, braziliandevs, programming
Published: 2023-02-16 05:31:36

Redis é um banco de dados em memória de código aberto que armazena dados em pares chave-valor. Ele oferece suporte a várias estruturas de dados, o que o torna uma escolha popular para aplicativos que requerem alta velocidade e baixa latência.

Algumas das estruturas de dados suportadas pelo Redis incluem:

1. Strings: uma simples chave-valor que pode conter qualquer tipo de dados, como uma string, número ou objeto serializado.
2. Listas: uma lista ordenada de strings, permitindo a inserção de elementos no início ou no fim da lista.
3. Conjuntos: uma coleção não ordenada de strings sem duplicatas, permitindo a adição, remoção e verificação de elementos em tempo constante.
4. Hashes: uma coleção de pares chave-valor em que a chave é uma string e o valor pode ser qualquer tipo de dados.
5. Sorted Sets: semelhante a um conjunto, mas com um valor adicional atribuído a cada elemento. Os elementos são classificados com base no valor atribuído, permitindo que sejam recuperados em ordem crescente ou decrescente.

As estruturas de dados do Redis são extremamente rápidas, permitindo que aplicativos respondam rapidamente a solicitações de banco de dados. Além disso, o Redis possui recursos avançados, como replicação mestre-escravo e persistência de dados em disco, o que o torna uma escolha popular para aplicativos de alta disponibilidade e escalabilidade.

### Tipos de dados

1. Strings:
    - chave: "nome", valor: "João"
    - chave: "idade", valor: "30"
    - chave: "email", valor: "**[joao@email.com](mailto:joao@email.com)**"
2. Listas:
    - chave: "tarefas", valores: ["comprar leite", "pegar roupas na lavanderia", "ir ao banco"]
3. Conjuntos:
    - chave: "amigos", valores: ["Maria", "Pedro", "Ana"]
    - chave: "interesses", valores: ["tecnologia", "esportes", "viagens"]
4. Hashes:
    - chave: "usuario:1", valores: {"nome": "João", "idade": "30", "email": "**[joao@email.com](mailto:joao@email.com)**"}
    - chave: "produto:123", valores: {"nome": "Smartphone", "preco": "2000", "estoque": "10"}
5. Sorted Sets:
    - chave: "pontuacoes", valores: {"João": 100, "Maria": 200, "Pedro": 150}
    - chave: "precos", valores: {"Smartphone": 2000, "Notebook": 3000, "Tablet": 1500}

### Diferença entre hashes e sorted sets?

Embora as estruturas de dados Hashes e Sorted Sets do Redis possuam algumas semelhanças, elas são diferentes em termos de como os dados são armazenados e acessados.

Hashes armazenam pares chave-valor, onde a chave é uma string e o valor pode ser qualquer tipo de dado. Hashes são ideais para representar objetos com múltiplos atributos, já que cada atributo pode ser armazenado como um par chave-valor. Por exemplo, você pode usar um hash para representar um usuário em um aplicativo web, onde as chaves são os atributos do usuário (como nome, idade, endereço, etc.) e os valores são os valores desses atributos.

Por outro lado, Sorted Sets também armazenam pares chave-valor, mas a diferença é que o valor da chave deve ser exclusivo e usado para classificar os pares em ordem crescente ou decrescente. Sorted Sets são ideais para representar dados que precisam ser classificados ou classificados com base em um valor específico. Por exemplo, você pode usar um Sorted Set para armazenar a pontuação de um jogo, onde as chaves são os nomes dos jogadores e os valores são as pontuações correspondentes. Ao acessar o Sorted Set, você pode classificar os jogadores com base em sua pontuação e obter os primeiros 10 jogadores com as pontuações mais altas.

Em resumo, a principal diferença entre Hashes e Sorted Sets é que Hashes são ideais para representar objetos com vários atributos, enquanto Sorted Sets são ideais para armazenar dados que precisam ser classificados ou classificados com base em um valor específico.