Redis 8 recursos

Redis 8.2 introduz melhorias significativas em relação ao Redis 7.x, proporcionando maior desempenho, maior eficiência de memória, maior observabilidade e melhor experiência do desenvolvedor. O 8.2 oferece novos recursos em Streams, bitmaps, pesquisa vetorial, métricas de cluster, preservando o modelo de programação familiar do Redis.

Os principais aprimoramentos de alto nível em 8.2 são os seguintes:

  • Ganhos significativos de desempenho em comandos e cargas de trabalho comuns.
  • Redução do uso de memória, especialmente para JSON e metadados de chave.
  • Nova funcionalidade em Streams, operações de bits e pesquisa de vetores.
  • Métricas expandidas e observabilidade para clusters e replicação.

Fazendo upgrade de Redis 7.2 para Redis 8.2

Para obter informações sobre como fazer upgrade de Redis 7.2 para Redis 8.2, consulte Upgrade para uma nova versão principal.

Redis módulos

Redis 8 oferece suporte a vários módulos oficiais que ampliam sua funcionalidade para casos de uso avançados. Os principais módulos e seus recursos são descritos nas seções a seguir.

RedisBloom

RedisBloom é um módulo oficial do Redis que fornece estruturas de dados probabilísticos: Bloom Filter, Cuckoo Filter, Count-Min Sketch e Top-K. Essas estruturas trocam a exatidão por extrema eficiência espacial e velocidade, o que as torna ideais para quando respostas aproximadas com um limite de erro conhecido são aceitáveis.

Os principais recursos do RedisBloom são os seguintes:

  • Filtro Bloom: testa se um elemento pode estar em um conjunto, com probabilidade configurável de falsos positivos e sem falsos negativos.

  • Filtro Cuckoo: semelhante ao Bloom, mas suporta exclusões de forma mais natural.

  • Esboço Count-Min: estima a frequência de eventos em um modo de fluxo contínuo (por exemplo, quantas vezes uma tecla aparece).

  • Top-K: rastreia os itens mais frequentes em um fluxo de dados.

Os casos de uso típicos do site RedisBloom são os seguintes:

  • Verificações de duplicatas e já vistas (URLs, e-mails e IDs de usuário).

  • Detecção de fraudes e prevenção de abusos (sinalizar padrões suspeitos sem armazenar o histórico completo).

  • Sistemas de recomendação e listas de tendências que usam Count-Min Sketch e Top-K.

  • Pré-filtros de cache para evitar pesquisas desnecessárias no backend.

RedisBloom exemplo

Para criar um filtro Bloom com taxa de erro de 1% e capacidade de 1000:

> BF.RESERVE bikes:models 0.01 1000

OK

Para adicionar e verificar um nome de modelo:

> BF.ADD bikes:models "Smoky Mountain Striker"

(integer) 1

> BF.EXISTS bikes:models "Smoky Mountain Striker"

(integer) 1

Para obter mais informações, consulte a documentação do filtro RedisBloom

RediSearch

RediSearch é um mecanismo de consulta e indexação para o site Redis que oferece pesquisa de texto completo, indexação secundária, agregações e suporte para pesquisa de similaridade vetorial. RediSearch indexa dados Redis (por exemplo, hashes e JSON) e permite consultas avançadas com pontuação, filtragem e destaque.

Os principais recursos do RediSearch são os seguintes:

  • Pesquisa de texto completo com stemming, fonética e correspondência difusa.

  • Campos numéricos, de tags e geoespaciais para filtros avançados.

  • Mecanismo de agregação para facetas, análises e classificação.

  • Integração com campos vetoriais para pesquisa semântica e aproximada do vizinho mais próximo (ANN).

Os casos de uso típicos do site RediSearch são os seguintes:

  • Pesquisa de catálogo de produtos com filtros e facetas.

  • Pesquisa de registros e eventos com filtros de texto livre e estruturados.

  • Pesquisa em tempo real do conteúdo do usuário (tweets, posts e documentos).

  • Pesquisa de texto e vetor combinada para aplicativos com tecnologia de IA.

RediSearch exemplo

Para criar um índice e adicionar um documento:

> FT.CREATE idx ON HASH PREFIX 1 "doc:" SCHEMA title TEXT

OK

> HSET doc:1 title "hello redis"

(integer) 1

Para pesquisar por texto:

> FT.SEARCH idx "hello"

1) (integer) 1

2) "doc:1"

3) 1) "title"

   2) "hello redis"

Para obter mais informações, consulte a documentação do site RediSearch.

RedisJSON

RedisJSON introduz um tipo de dados JSON nativo para Redis, permitindo o armazenamento, a recuperação e as atualizações parciais de documentos JSON que usam sintaxe semelhante à do JSONPath. RedisJSON é otimizado para acesso rápido a subdocumentos e se integra a outros recursos do site Redis, como o RediSearch.

Os principais recursos do RedisJSON são os seguintes:

  • Armazene documentos JSON estruturados como valores de primeira classe.

  • Recupere ou atualize caminhos específicos sem carregar o documento inteiro.

  • Suporte a matrizes, objetos e estruturas aninhadas.

  • Opção de integração com recursos de pesquisa e consulta para indexação de campos JSON.

Os casos de uso típicos do RedisJSON são os seguintes:

  • Perfis e sessões de usuários com campos aninhados atualizados com frequência.

  • Documentos de configuração e sinalizadores de recursos.

  • Catálogos de produtos ou objetos de conteúdo que são compartilhados entre serviços.

  • APIs baseadas em JSON em que o Redis atua como um armazenamento de apoio de alta velocidade.

RedisJSON exemplo:

Para armazenar um documento JSON simples:

127.0.0.1:6379> JSON.SET user:1 $ '{"name":"Alice","age":30}'

OK

Para obter um campo:

127.0.0.1:6379> JSON.GET user:1 $.name

"\"Alice\""

Para obter mais informações, consulte a documentação do site RedisJSON.

RedisTimeSeries

RedisTimeSeries é um módulo para ingestão, armazenamento, consulta, agregação e redução de amostragem eficientes de dados de séries temporais. RedisTimeSeries adiciona um tipo de dados de série temporal e comandos relacionados para modelar métricas e eventos ao longo do tempo.

Os principais recursos do RedisTimeSeries são os seguintes:

  • Ingestão de alto rendimento com registro automático de data e hora.

  • Consultas de intervalo em intervalos de tempo, com agregações como média, mínimo, máximo e soma.

  • Políticas de retenção e regras de compactação para armazenamento de longo prazo.

  • Rótulos para agrupamento e consulta de conjuntos de séries temporais.

Os casos de uso típicos do RedisTimeSeries são os seguintes:

  • Métricas de infraestrutura e aplicativos (CPU, memória, latência).

  • IoT leituras de sensores e telemetria.

  • Dados de ticks financeiros e métricas de mercado.

  • KPIs de negócios e painéis de controle operacionais.

RedisTimeSeries exemplo

Para criar uma série temporal e adicionar um valor:

> TS.CREATE temp:room1

OK

> TS.ADD temp:room1 * 25.3

(integer) 1736846400000

Para obter a amostra mais recente:

> TS.GET temp:room1

1) (integer) 1736846400000

2) "25.3"

Para obter mais informações, consulte a documentação do site RedisTimeSeries.

Redis Vetor

Redis O Vector fornece um tipo de dados de vetor e recursos de pesquisa de similaridade de vetor, oferecendo suporte a consultas de vizinho mais próximo aproximado (ANN) sobre embeddings. Isso permite que as cargas de trabalho de IA e ML, como pesquisa semântica e recomendações, sejam executadas diretamente no site Redis.

Os principais recursos do Redis Vector são os seguintes:

  • Armazenamento de vetores de alta dimensão (por exemplo, 128-1536 dimensões) com tipos de índice configuráveis, como HNSW e plano.

  • Pesquisa de K-nearest neighbor (KNN) em campos vetoriais usando métricas de distância como cosseno, produto interno ou L2.

  • Consultas híbridas que combinam similaridade de vetores com condições de filtro em campos estruturados.

  • Integração com RediSearch ou Query Engine para esquemas flexíveis.

Os casos de uso típicos do Redis Vector são os seguintes:

  • Pesquisa semântica de documentos para pipelines RAG.

  • Recomendações personalizadas usando embeddings de usuários ou itens.

  • Pesquisa de similaridade para imagens, áudio ou código incorporado.

  • Detecção de fraudes e anomalias usando embeddings aprendidos.

Redis Exemplo de vetor:

Para criar um índice vetorial mínimo e um documento (exemplo de 4 dimensões):

> FT.CREATE vIdx ON HASH PREFIX 1 "vdoc:" \

SCHEMA embedding VECTOR HNSW 6 TYPE FLOAT32 DIM 4 DISTANCE_METRIC COSINE

OK

> HSET vdoc:1 embedding "\x00\x00\x80?\x00\x00\x80?\x00\x00\x80?\x00\x00\x80?"

(integer) 1

Para o KNN, procure o vetor mais próximo:

> FT.SEARCH vIdx "(*=>[KNN 1 @embedding $v AS score])" \

PARAMS 2 v "\x00\x00\x80?\x00\x00\x80?\x00\x00\x80?\x00\x00\x80?" SORTBY score DIALECT 2

1) (integer) 1

2) "vdoc:1"

3) 1) "embedding"

   2) "\x00\x00\x80?..."

   3) "score"

   4) "0.000000"

Para obter mais informações, consulte a documentação sobre conceitos de pesquisa de vetores.

Notas de versão e registro de alterações de Redis 7 para Redis 8

As diferenças funcionais entre Redis 7 e Redis 8 são as seguintes:

  • Comandos de Streams aprimorados XDELEX e XACKDEL para ciclo de vida de mensagens atômicas e gerenciamento mais limpo de grupos de consumidores.

  • Operações de bitmap estendidas que usam operadores BITOP mais avançados para análise de grandes conjuntos de bits.

  • Recursos de pesquisa vetorial mais maduros integrados ao mecanismo de consulta.

  • Várias correções de segurança e estabilidade que não estão disponíveis em versões anteriores do 7.x.

  • A distribuição e o empacotamento dos módulos são consolidados em 8.x, simplificando, portanto, a implantação.