Estruturas de dados

Projetadas pensando nos desenvolvedores, e diferentemente dos armazenamentos simplistas de dados de valor-chave, as estruturas de dados do Redis oferecem maneiras flexíveis de modelar seus dados para muitos casos práticos em aplicativos modernos. Essas estruturas de dados sofisticadas permitem o desenvolvimento de aplicativos com menos linhas de código para armazenar, acessar e usar seus dados, além de possibilitar um processamento poderoso e rápido na memória.

Essas estruturas de dados evitam a sobrecarga associada à tradução entre objetos de aplicativos e entidades de banco de dados para cada operação de banco de dados.

O Redis oferece Strings, Hashes, Lists, Sets, Sorted Sets, Bitmaps, Bitfields, HyperLogLog, índices geoespaciais e Streams como estruturas de dados nativas. Com cada estrutura de dados, o Redis mantém comandos exclusivos para permitir que operações de vários tipos sejam executadas com eficiência.

Strings

Um dos blocos de construção mais versáteis do Redis, o Redis Strings é uma estrutura de dados binários segura. Você pode armazenar qualquer tipo de dado: uma cadeia de caracteres, um número inteiro, um valor de ponto flutuante, uma imagem JPEG, um objeto Ruby serializado ou qualquer outra coisa que queira armazenar. Opere em uma string inteira ou em partes dela e aumente ou diminua números inteiros e flutuantes.


Sets

A estrutura de dados Redis Sets armazena um único conjunto de membros. Com os conjuntos, você pode adicionar, recuperar ou excluir membros, verificar a associação ou recuperar um membro aleatoriamente. Você também pode executar operações em conjuntos, como interseção, união e diferença de conjuntos, e calcular a cardinalidade dos conjuntos.


Sorted Sets

Os Redis Sorted Sets contêm um único conjunto de membros ordenados por pontuações de ponto flutuante. Assim como nos conjuntos, você pode adicionar, recuperar ou excluir membros individuais e executar operações de conjunto, como união, interseção, diferença de conjunto e cálculo de cardinalidade. Além disso, você também pode consultar o conjunto com base na pontuação ou no valor do membro, agregar, filtrar e classificar os resultados.


Lists

As listas do Redis contêm coleções de itens de string classificados por ordem de inserção. É possível empurrar ou puxar itens de ambas as extremidades, cortar com base em deslocamentos, ler itens únicos ou múltiplos,  pesquisar ou excluir itens por valor e posição. As chamadas de bloqueio também podem ser feitas para transferências assíncronas de mensagens.


Hashes

Semelhante a documentos em um armazenamento de documentos ou linhas em um banco de dados relacional, a estrutura Redis Hashes armazena um conjunto de pares campo-valor. Ela oferece a possibilidade de adicionar, recuperar ou excluir elementos individuais e recuperar o hash inteiro, ou usar um ou mais campos do hash como um contador.


Bitmaps

O Redis Bitmaps é uma estrutura de dados compacta para armazenar estados lógicos e binários. Ele fornece comandos para obter e definir um valor de bit em uma determinada posição e executar operações AND, OR, XOR e NOT entre várias chaves de bitmap.


Campos de bits

Os campos de bits oferecem uma maneira eficiente e compacta de implementar vários contadores em uma única matriz. Ele permite que os contadores sejam aumentados e diminuídos em uma determinada posição e marca o estouro quando o contador atinge seu limite superior.


HyperLogLog

O Redis HyperLogLog é uma estrutura de dados probabilística usada para contar valores únicos (definir cardinalidade) com um tamanho de memória constante. Ela pode adicionar e contar um grande número de itens exclusivos com eficiência de memória e mesclar duas ou mais estruturas de dados HyperLogLogLog em uma.


Índices geoespaciais

Os índices geoespaciais fornecem uma maneira extremamente eficiente e fácil de gerenciar e usar dados geoespaciais no Redis. Você pode adicionar itens exclusivos com latitude e longitude, calcular a distância entre objetos e encontrar membros dentro de um determinado raio de alcance de um local.


Streams

O Redis Streams é uma estrutura de dados incrivelmente poderosa para gerenciar fluxos de dados de alta velocidade (como uma fila de mensagens). Com particionamento, replicação e persistência prontos para uso, ele pode capturar e processar milhões de pontos de dados por segundo com latência inferior a um milissegundo. O Redis Streams é baseado em uma implementação eficiente de árvore radix, que torna as consultas de intervalo e pesquisa extremamente rápidas. Ele conecta produtores e consumidores com chamadas assíncronas e oferece suporte a grupos de consumidores.