As instâncias Tair baseadas em DRAM representam o nível de alto desempenho do ApsaraDB for Redis. Cada nó de dados entrega aproximadamente 3× o throughput de uma instância Redis Open-Source Edition com especificações equivalentes, graças a uma arquitetura multithread que separa I/O, execução de comandos e monitoramento em threads dedicadas. Use instâncias baseadas em DRAM quando tráfego em hotkeys, pressão de gravações simultâneas ou custo de manutenção de cluster se tornarem um gargalo.
Benefícios
|
Benefício |
Detalhes |
|
Compatibilidade |
Totalmente compatível com Redis 7.0, 6,0 e 5,0. Nenhuma alteração no código da aplicação é necessária. |
|
Desempenho |
A arquitetura multithread entrega aproximadamente 3× o QPS de instâncias Redis Open-Source Edition com as mesmas especificações. A sincronização de dados completa e incremental ocorre em threads de I/O para acelerar o processo. |
|
Modo de sincronização |
Oferece suporte a replicação semissíncrona. Após o nó primário executar uma atualização do cliente, ele replica os logs para um nó réplica e retorna uma resposta somente após a confirmação de recebimento pela réplica. Isso garante ausência de perda de dados durante switchovers de alta disponibilidade. |
|
Arquiteturas de implantação |
Standard, cluster e separação de leitura/gravação. |
|
Estruturas de dados estendidas |
Integra múltiplos módulos Tair internos: exString (incluindo CAS/CAD commands), exHash, exZset, GIS, Bloom, Doc, TS, Cpc, Roaring, Search e Vector. |
|
Recursos enterprise |
Flashback de dados, cache de consulta no proxy e Global Distributed Cache. |
|
Segurança de dados |
Oferece suporte a criptografia SSL e TDE (Transparent Data Encryption) para arquivos RDB. |
Quando usar instâncias baseadas em DRAM
Escolha uma instância baseada em DRAM se alguma das condições abaixo se aplicar:
QPS por nó ultrapassa 100.000: Nós Redis Open-Source Edition atingem no máximo entre 80.000 e 100.000 QPS. Instâncias baseadas em DRAM aguentam QPS de dados quentes acima de 200.000 sem degradação de desempenho.
Promoções relâmpago ou picos de tráfego: O modelo multithread absorve tráfego em burst e mantém desempenho estável, evitando problemas de conexão nos horários de pico.
Restrições de comandos em cluster: Instâncias em cluster do Redis Open-Source Edition impõem limites sobre transações de banco de dados e scripts Lua. Instâncias em cluster baseadas em DRAM eliminam essas restrições.
Separação de leitura/gravação com alto volume de gravações: A separação de leitura/gravação do Redis Open-Source Edition suporta alto volume de leituras, mas não sustenta grandes cargas de gravação simultâneas. No modo de separação de leitura/gravação, instâncias baseadas em DRAM atendem a ambos — um nó de dados e até cinco réplicas de leitura para milhões de QPS.
Redução de custos no cluster: Caso um cluster Redis autogerenciado continue crescendo em número de nós, migrar para instâncias em cluster baseadas em DRAM pode reduzir o tamanho do cluster em dois terços e diminuir significativamente os custos de O&M.
Guia de seleção de arquitetura
|
Arquitetura |
Redis Open-Source Edition |
Instâncias baseadas em DRAM |
|
Standard |
Inadequado quando o QPS por nó ultrapassa 100.000 |
Suporta QPS por nó acima de 100.000 |
|
Cluster |
Dados quentes em um nó degradam o desempenho dos demais dados no mesmo nó |
Acesso de alto desempenho a dados quentes com menor custo de manutenção |
|
Separação de leitura/gravação |
Alto throughput de leitura; capacidade limitada de gravações simultâneas |
Alto throughput de leitura e alta capacidade de gravações simultâneas |
Como funciona
Arquitetura multithread
O Redis Open-Source Edition usa um modelo de thread único, no qual uma única thread gerencia todo o I/O de rede e a execução de comandos. Esse modelo é suficiente para cargas moderadas, mas se torna um gargalo em alta concorrência.
As instâncias Tair baseadas em DRAM distribuem o trabalho entre três tipos de threads:
Threads de I/O — leem requisições, fazem o parse dos comandos e enviam as respostas
Threads worker — executam comandos e eventos de timer
Threads auxiliares — monitoram heartbeats e status dos nós para alta disponibilidade
Cada instância suporta até quatro threads de I/O em execução simultânea. Filas e pipelines sem bloqueio transferem dados entre as threads de I/O e as threads worker para maximizar o desempenho multithread.

Figura 1. Modelo de thread único do Redis — uma thread gerencia leitura de requisições, parse, processamento de dados e respostas.

Figura 2. Modelo multithread do Tair — threads de I/O, worker e auxiliares processam tarefas em paralelo.
O que o modelo multithread acelera:
|
Tipo de operação |
Aceleração |
|
Estruturas de dados comuns (String, List, Set, Hash, Sorted Set, HyperLogLog, Geo) |
Sim — melhorias significativas |
|
Estruturas de dados estendidas (módulos Tair) |
Sim |
|
Operações pub/sub e de API com bloqueio |
Sim — aumento de throughput de aproximadamente 50%, replicado nas threads worker |
|
Transações e scripts Lua |
Não — precisam ser executados sequencialmente |
Diferentemente do multithread do Redis 6.0, que melhora o desempenho em até 2× mas consome muitos recursos de CPU, a arquitetura Real Multi-IO das instâncias baseadas em DRAM acelera de forma abrangente tanto o I/O quanto a execução de comandos. Isso proporciona maior resistência aos impactos de conexão e capacidade de throughput com crescimento linear.
Estruturas de dados estendidas
Os tipos de dados padrão do Redis — String, List, Hash, Set, Sorted Set e Stream — cobrem a maioria dos casos de uso comuns. Para cenários mais complexos, como consultas geoespaciais, análise de séries temporais, busca vetorial ou estruturas de dados probabilísticas, o Redis padrão normalmente exige modificações nos dados da aplicação ou a escrita de scripts Lua.
As instâncias baseadas em DRAM integram múltiplos módulos Tair internos que adicionam essas capacidades de forma nativa.
Disponibilidade de módulos por versão do Redis:
|
Módulo |
Redis 7.0 ou 6.0 |
Redis 5.0 |
|
exString |
Sim |
Sim |
|
exHash |
Sim |
Sim |
|
exZset |
Sim |
Sim |
|
GIS |
Sim |
Sim |
|
Bloom |
Sim |
Sim |
|
Doc |
Sim |
Sim |
|
TS |
Sim |
Sim |
|
Cpc |
Sim |
Sim |
|
Roaring |
Sim |
Sim |
|
Search |
Sim |
Sim |
|
Vector |
Sim |
Não |
Recursos enterprise
|
Recurso |
Descrição |
|
O Tair retém dados de backup AOF (append-only file) por até sete dias. Especifique qualquer ponto no tempo com precisão de segundos para restaurar os dados em uma nova instância. |
|
|
Os nós proxy armazenam em cache as respostas para hotkeys dentro de um período de validade configurável. Requisições repetidas são atendidas pelo cache sem acessar os shards de dados no backend. |
|
|
Sistema de georredundância ativo com suporte a múltiplos sites em diferentes regiões atendendo tráfego simultaneamente. |
|
|
Sincronização bidirecional de dados via DTS |
O Data Transmission Service (DTS) oferece suporte a sincronização bidirecional de dados entre instâncias Tair para cenários de georredundância ativa e recuperação de desastres geográfica. Para instruções de configuração, consulte Configure two-way data synchronization between Tair instances. |
Perguntas frequentes
Meu cliente não oferece suporte aos comandos fornecidos pelos módulos Tair. O que devo fazer?
Defina os comandos do módulo no código da sua aplicação antes de utilizá-los, ou migre para um cliente com suporte nativo. Para a lista de clientes compatíveis, consulte Clients.