As instâncias baseadas em DRAM do Tair representam o nível de alto desempenho do ApsaraDB for Redis. Cada nó de dados entrega aproximadamente três vezes o throughput de uma instância Redis Open-Source Edition de especificações equivalentes, graças a uma arquitetura multithread que separa I/O, execução de comandos e monitoramento em tipos de threads dedicados. Use instâncias baseadas em DRAM quando tráfego de hotkey, pressão de gravação concorrente ou custo de manutenção de cluster for um gargalo.
Benefícios
|
Benefício |
Detalhes |
|
Compatibilidade |
Totalmente compatível com Redis 7.0, Redis 6.0 e Redis 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 das mesmas especificações. A sincronização completa e incremental de dados ocorre em threads de I/O para acelerar o processo. |
|
Modo de sincronização |
Compatível com modo de replicação semissíncrono. Após o nó primário executar uma atualização do cliente, replica os logs para um nó réplica e retorna uma resposta somente após a réplica confirmar o recebimento, garantindo ausência de perda de dados durante switchovers de alta disponibilidade. |
|
Arquiteturas de implantação |
Standard, cluster e read/write splitting. |
|
Estruturas de dados estendidas |
Integra múltiplos módulos Tair desenvolvidos internamente: exString (incluindo comandos CAS/CAD), exHash, exZset, GIS, Bloom, Doc, TS, Cpc, Roaring, Search e Vector. |
|
Recursos corporativos |
Flashback de dados, cache de consulta no proxy e Global Distributed Cache. |
|
Segurança de dados |
Compatível com criptografia SSL (Secure Sockets Layer) e TDE (Transparent Data Encryption) para criptografar e descriptografar arquivos RDB (Redis Database). |
Quando usar instâncias baseadas em DRAM
Opte por uma instância baseada em DRAM se qualquer uma das situações a seguir se aplicar:
QPS por nó superior a 100.000: Nós Redis Open-Source Edition atingem no máximo 80.000–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 o tráfego em rajada e mantém desempenho estável, evitando problemas de conexão nos períodos de pico.
Restrições de comandos em cluster: Instâncias em cluster Redis Open-Source Edition impõem limitações a transações de banco de dados e scripts Lua. Instâncias cluster baseadas em DRAM removem essas restrições.
Read/write splitting com alto volume de gravações: O read/write splitting do Redis Open-Source Edition suporta alto volume de leituras, mas não sustenta grandes cargas de gravação concorrente. Instâncias baseadas em DRAM em modo read/write splitting cobrem ambos os casos — um nó de dados e até cinco réplicas de leitura para milhões de QPS.
Redução de custos em cluster: Se um cluster Redis autogerenciado continua crescendo em número de nós, migrar para instâncias 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 |
Não indicada 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 custos de manutenção reduzidos |
|
Read/write splitting |
Alto throughput de leitura; capacidade de gravação concorrente limitada |
Alto throughput de leitura e alta capacidade de gravação concorrente |
Como funciona
Arquitetura multithread
O Redis Open-Source Edition utiliza um modelo single-threaded, em que uma única thread gerencia todo o I/O de rede e a execução de comandos. Essa abordagem é 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, analisam comandos e enviam respostas
Threads de worker — executam comandos e eventos de timer
Threads auxiliares — monitoram heartbeats e o status dos nós para garantir 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 de worker para maximizar o desempenho multithread.

Figura 1. Modelo single-threaded do Redis — uma única thread gerencia leitura de requisições, análise de requisições, 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 API bloqueante |
Sim — aumento de throughput de aproximadamente 50%, replicadas em threads de worker |
|
Transações e scripts Lua |
Não — devem ser executados sequencialmente |
Diferentemente do multithread do Redis 6.0 — que melhora o desempenho em até 2×, mas consome alto nível de 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. O resultado é maior resistência a 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. Em 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 a modificação dos dados da aplicação ou a criação de scripts Lua.
As instâncias baseadas em DRAM integram nativamente múltiplos módulos Tair desenvolvidos internamente, adicionando essas capacidades sem alterações na aplicação.
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 corporativos
|
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 durante um período de validade configurável. Requisições repetidas são atendidas a partir do cache, sem acesso aos shards de dados no backend. |
|
|
Sistema de banco de dados com geo-redundância ativa que permite múltiplos sites em diferentes regiões atendendo tráfego simultaneamente. |
|
|
Sincronização bidirecional de dados via DTS |
O Data Transmission Service (DTS) oferece sincronização bidirecional de dados entre instâncias Tair para cenários de geo-redundância ativa e recuperação de desastres geográfica. Para instruções de configuração, consulte Configure sincronização bidirecional de dados entre instâncias Tair. |
Perguntas frequentes
Meu cliente não suporta os 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 que inclua suporte nativo. Para uma lista de clientes compatíveis, consulte Clients.