Módulos

Os módulos Redis enriquecem as estruturas de dados centrais do Redis com recursos de pesquisa e modelos de dados modernos, como JSON, gráficos, séries temporais e inteligência artificial (IA). Os módulos Redis permitem que os desenvolvedores criem novos serviços de aplicativos sobre o Redis e, ao mesmo tempo, aproveitem sua velocidade de menos de um milissegundo.

Além disso, a inclusão de vários modelos de dados dentro da camada de banco de dados elimina a sobrecarga desnecessária, mantém a baixa latência, e elimina o tedioso gerenciamento da comunicação e da conexão entre a camada de aplicativos e vários bancos de dados.

Além disso, quando implementados no Redis Enterprise, os módulos oferecem a disponibilidade de cinco noves do Redis com escalabilidade linear, juntamente com recursos aprimorados, como implantações Ativo-Ativo e Ativo-Passivo em implantações híbridas e de várias nuvens. E com o RedisGears, os usuários podem controlar facilmente (de forma totalmente programável) as operações de todo o cluster em shards, nodes, modelos de dados e estruturas de dados.

RediSearch

Normalmente, os mecanismos de pesquisa indexam os dados lentamente, de modo que os dados mais recentes levam muito tempo para aparecer nos resultados.

O RediSearch é um mecanismo de busca em tempo real que é executado no conjunto de dados Redis e permite consultar informações que acabaram de ser indexadas. Ele pode ser usado como um índice secundário para conjuntos de dados hospedados em outros armazenamentos, como um texto rápido ou mecanismo de pesquisa de preenchimento automático e como um mecanismo de pesquisa que alimenta outros módulos, como o RedisGraph e o RedisTimeSeries.

Escrito em C, criado do zero com base em estruturas de dados modernas e usando o eficiente protocolo Redis, o RediSearch é o mecanismo de pesquisa mais rápido do mercado. Além disso, o RediSearch tem uma grande variedade de recursos, incluindo classificação, consultas booleanas, geofiltros, sinônimos, filtros e intervalos numéricos, agregação etc.

RedisJSON

Para armazenar um objeto JSON no Redis, ele deve ser serializado em uma String ou dividido em campos Hash, o que impõe uma sobrecarga de tradução no aplicativo e impede atualizações no local, bem como operações como incremento.

O RedisJSON torna o JSON uma estrutura de dados nativa no Redis. Ele foi projetado para manipulação rápida e eficiente na memória de documentos JSON em alta velocidade e volume. Dessa forma, ele pode armazenar os dados de seus documentos em um formato hierárquico, semelhante a uma árvore, que pode ser modificado e consultado com eficiência.

RedisGears

O RedisGears é um mecanismo programável para o Redis que é executado dentro do Redis, mais próximo de onde seus dados estão. O RedisGears permite que você execute operações em todo o cluster em shards, nodes, estruturas de dados e modelos de dados em velocidade inferior a milissegundos. Com Python (e em breve Java, Scala e outras linguagens JVM), você pode programar o RedisGears para 1) oferecer suporte a casos de uso de cache avançados, como write-behind/write-through; 2) controlar de forma confiável o processamento orientado a eventos; 3) realizar análises de dados em tempo real em todo o cluster; e 4) orquestrar o serviço de IA.

RedisAI

As cargas de trabalho de aprendizado de máquina e inferência de IA operam tradicionalmente a partir do aplicativo ou de camadas de serviços especializados. Em muitos casos, a inferência de IA precisa ser enriquecida com dados de referência originários de um banco de dados. Como resultado, são necessárias várias viagens de ida e volta entre a camada de serviço do aplicativo/IA e o banco de dados, o que aumenta significativamente a latência da inferência de ponta a ponta.

O RedisAI implementa um mecanismo de inferência na camada do banco de dados. Isso permite a localização de dados entre o mecanismo e os dados de destino, reduzindo drasticamente a latência. Ele também fornece uma camada comum entre diferentes formatos e plataformas, incluindo PyTorch, TensorFlow/TensoRT e ONNXRuntime. O RedisAI é totalmente integrado a ferramentas de pipeline de IA/ML de última geração, como o MLFlow e, em breve, o Kubeflow.

RedisGraph

As consultas em dados altamente conectados em bancos de dados tradicionais são ineficientes porque se baseiam em abordagens de processamento de gráficos abaixo do ideal. A maioria dos bancos de dados de gráficos melhora esse comportamento, mas ainda exige consultas em cada conexão individualmente.

O RedisGraph baseia-se em uma nova abordagem que converte as consultas de gráficos em operações de matriz, permitindo que as relações sejam avaliadas de forma altamente paralela. O RedisGraph oferece suporte ao Cypher padrão do setor como uma linguagem de consulta e incorpora o mecanismo SuiteSparse GraphBLAS de próxima geração para operações de matriz em matrizes esparsas.

Esse novo design permite que casos práticos, como operação de gráficos sociais, detecção de fraudes e recomendações em tempo real, sejam executados até duas ordens de magnitude mais rapidamente do que qualquer outro banco de dados de gráficos.

RedisTimeSeries

O Redis tem sido usado há anos para armazenar dados de séries temporais. Sua arquitetura in-memory o torna uma escolha natural para essa carga de trabalho de inserção pesada. Embora as estruturas de dados incorporadas do Redis ofereçam várias opções de séries temporais, elas têm capacidade limitada para consultar e agregar os dados.

Com o RedisTimeSeries, recursos como downsampling automático, agregações, marcação e pesquisa, compactação e consultas aprimoradas de vários intervalos são suportados nativamente no Redis. Os conectores integrados a ferramentas de monitoramento populares, como Prometheus e Grafana, permitem a extração de dados em formatos úteis para visualização e monitoramento. O RedisTimeSeries oferece toda essa funcionalidade e ainda aproveita a escalabilidade linear do Redis Enterprise.

RedisBloom

Os filtros Bloom e Cuckoo, TopK e CountMinSketch são amplamente usados para dar suporte a consultas de associação de dados, graças à sua eficiência espacial e à funcionalidade de associação em tempo constante. Dito isso, implementações rápidas e eficientes de estruturas de dados probabilísticos não são fáceis de desenvolver na camada de aplicativos.

O RedisBloom tem escala linear, tempo de failover de um dígito de segundo e durabilidade, com provisionamento simples e recursos de monitoramento integrados.