O poder supremo do Redis

Mnwa Mnowich em Notável – The Journal Blog Seguir Jul 7 · 3 min ler

Se você usa o Redis apenas para cache – você nunca usou o Redis.

Está bem. O que é redis?

O Redis é um banco de dados de valor-chave rápido que armazena dados na memória.

O site oficial nos fala:

Redis é um open source (licenciado pelo BSD), armazenamento de estrutura de dados na memória, usado como banco de dados, cache e message broker. Ele suporta estruturas de dados como strings, hashes, listas, conjuntos, conjuntos classificados com consultas de intervalo, bitmaps, hiperloglogs, índices geoespaciais com consultas e fluxos radius.

Por que é tão popular?

Os Redis utilizados pelas principais empresas como as (os redis têm listas oficiais de empresas aqui ):

Porque o Redis não é apenas rápido, mas também fácil de usar. Além disso, ao contrário de outros bancos de dados na memória, ele pode armazenar não apenas strings, mas também pode armazenar várias estruturas de dados, como:

Estruturas de dados do Redis.

Listas

No mundo das lojas de valores-chave, o Redis é único, pois suporta uma estrutura de lista vinculada. LISTs no Redis armazenam uma sequência ordenada de strings e, como STRINGs, eu represento figuras de LISTs como uma caixa rotulada com itens de lista dentro.

Conjuntos

No Redis, os SETs são similares a LISTs, pois são uma sequência de strings, mas, ao contrário de LISTs, os Redis SETs usam uma tabela de hash para manter todas as strings exclusivas (embora não haja valores associados).

Hashes

Enquanto LISTs e SETs em Redis mantêm sequências de itens, o Redis HASHes armazena um mapeamento de chaves para valores. Os valores que podem ser armazenados em HASHes são os mesmos que podem ser armazenados como STRINGs normais: strings em si, ou se um valor puder ser interpretado como um número, esse valor pode ser incrementado ou decrementado.

Conjuntos Ordenados

Como o Redis HASHes, os ZSETs também possuem um tipo de chave e valor. As chaves (chamadas membros) são exclusivas e os valores (chamados pontuações) são limitados a números de ponto flutuante. Os ZSETs têm a propriedade exclusiva no Redis de poder ser acessado pelo membro (como um HASH), mas os itens também podem ser acessados pela ordem classificada e pelos valores das pontuações.

Beatmaps

Bitmaps (também chamados de arrays de bits, vetores de bits, etc.) é a estrutura de dados que aparece imediatamente quando é necessário mapear informações booleanas para um domínio enorme em uma representação compacta. É uma estrutura de dados muito popular sempre que o espaço da memória é um prêmio: os núcleos do SO (páginas de memória, inodes etc), imagens digitais etc.

HyperLogLog

Um HyperLogLog é uma estrutura de dados probabilística usada para contar valores únicos – ou como é referido em matemática: calculando a cardinalidade de um conjunto.

Geoespacial

O Redis possui vários comandos relacionados à indexação geoespacial (comandos GEO), mas, ao contrário de outros comandos, esses comandos não possuem seu próprio tipo de dados. Esses comandos, na verdade, são usados no tipo de dados do conjunto classificado. Isto é conseguido através da codificação da latitude e longitude na pontuação do conjunto ordenado usando o algoritmo geohash.

Também Redis suporta muitos recursos como:

Parece bom, mas eu quero mais funcionalidades do banco de dados!

Isso não é um problema! O Redis permite estender a funcionalidade escrevendo seus próprios módulos. Com os módulos Redis, você pode facilmente criar novos comandos, estruturas de dados ou funcionalidades.

Conclusão

O redis é o poderoso instrumento rápido para armazenar e processar dados. Com redis você pode fazer o próprio aplicativo que funciona com o Pub Sub ou Streams. Muitas estruturas de dados facilitam a criação de aplicativos highload com uma disponibilidade de dados ativa.

PS

Eu penso em escrever mais sobre a criação de módulos para o Redis. O que você acha, vale a pena?