Todos os produtos
Search
Central de documentação

Tair (Redis® OSS-Compatible):Whitepaper de desempenho para Redis Open-Source Edition, instâncias com memória otimizada do Tair

Última atualização: Jun 26, 2026

Este whitepaper apresenta benchmarks de throughput máximo e latência para instâncias com memória otimizada do Tair e Redis Open-Source Edition, além do ambiente de teste, da ferramenta e dos comandos necessários para reproduzir os resultados.

Resultados dos testes

Importante

Esses números refletem o desempenho máximo em novas instâncias sob testes de comando único, com média calculada em várias execuções e zonas. Uma margem de erro de aproximadamente 10% é normal. Não execute instâncias com carga máxima em produção. Para um dimensionamento preciso, execute testes com sua própria carga de trabalho.

A tabela a seguir mostra as medições de QPS e latência para onze comandos comuns do Redis.

Comando

QPS do Tair

Latência média do Tair (ms)

Percentil 99 do Tair (ms)

QPS do Redis

Latência média do Redis (ms)

Percentil 99 do Redis (ms)

SET

282.656

0,45

0,86

142.376

0,45

0,72

GET

519.761

0,24

0,36

204.690

0,31

0,47

ZADD

208.169

0,62

1,14

113.135

0,57

0,78

ZSCORE

463.904

0,27

0,40

170.163

0,37

0,54

HSET

260.069

0,49

1,03

124.613

0,51

0,97

HGET

494.603

0,25

0,37

188.903

0,34

0,52

LPUSH

286.324

0,44

0,84

153.269

0,42

0,59

LINDEX

414.070

0,30

0,45

157.568

0,40

0,58

SADD

292.738

0,44

0,86

140.155

0,45

0,63

SISMEMBER

531.139

0,24

0,34

181.492

0,35

0,52

EVALSHA

214.303

0,60

1,12

101.136

0,63

0,91

Definições das métricas:

  • QPS (Consultas por segundo): Número de operações de leitura e gravação processadas por segundo.

  • Latência média: Média da latência das operações, em milissegundos (ms).

  • Latência do percentil 99: Latência máxima para 99% das operações, em ms. Por exemplo, 0,5 ms significa que 99% das solicitações são concluídas em até 0,5 ms.

A latência é medida de ponta a ponta, incluindo o tempo de fila tanto no banco de dados quanto no cliente de teste de estresse.

Dimensionamento de desempenho para outras arquiteturas

A tabela acima abrange a arquitetura padrão (réplica dupla). Para outras arquiteturas, dimensione a partir da linha de base padrão usando as regras a seguir, onde n é o número de shards em uma arquitetura cluster ou o número total de nós em uma arquitetura de divisão de leitura/gravação:

Arquitetura

Regra de dimensionamento de QPS

Cluster (modo proxy)

>= n x QPS da arquitetura padrão (com chaves distribuídas uniformemente)

Cluster (modo de conexão direta)

= n x QPS da arquitetura padrão (com chaves distribuídas uniformemente)

Divisão de leitura/gravação

Gravação: ligeiramente abaixo do padrão devido ao maior tráfego de replicação; Leitura: >= n x QPS da arquitetura padrão

Comando

Tair com memória otimizada

Redis Open-Source Edition

QPS

Latência média

Latência do percentil 99

QPS

Latência média

Latência do percentil 99

SET

282.656

0,45

0,86

142.376

0,45

0,72

GET

519.761

0,24

0,36

204.690

0,31

0,47

ZADD

208.169

0,62

1,14

113.135

0,57

0,78

ZSCORE

463.904

0,27

0,40

170.163

0,37

0,54

HSET

260.069

0,49

1,03

124.613

0,51

0,97

HGET

494.603

0,25

0,37

188.903

0,34

0,52

LPUSH

286.324

0,44

0,84

153.269

0,42

0,59

LINDEX

414.070

0,30

0,45

157.568

0,40

0,58

SADD

292.738

0,44

0,86

140.155

0,45

0,63

SISMEMBER

531.139

0,24

0,34

181.492

0,35

0,52

EVALSHA

214.303

0,60

1,12

101.136

0,63

0,91

Ambiente de teste

Banco de dados

Parâmetro

Valor

Regiões e zonas

China (Beijing) Zone L, China (Hangzhou) Zone K, China (Shanghai) Zone N, China (Shenzhen) Zone C

Arquitetura da instância

Arquitetura padrão (réplica dupla); cluster não ativado

Versão da instância

Redis 7.0

Tipos de instância

Tair com memória otimizada 8 GB (tair.rdb.8g); Redis Open-Source Edition 8 GB (redis.shard.xlarge.ce)

A versão tem pouco impacto nos resultados dos testes.

Para obter mais informações, consulte Arquitetura padrão e Tipos de instância e FAQ.

Cliente de teste

Parâmetro

Valor

Tipo de instância

Elastic Compute Service (ECS) ecs.g7.8xlarge

Região e zona

Mesma da instância de banco de dados

Sistema operacional

Alibaba Cloud Linux 3

Rede

Mesma virtual private cloud (VPC) da instância Tair

Ferramenta de teste

Todos os testes utilizam o resp-benchmark, uma ferramenta open-source da equipe Tair.

  • Para comandos comuns (SET, GET), o comportamento é consistente com o redis-benchmark.

  • Para comandos complexos, utiliza um modo de teste que simula melhor as cargas de trabalho reais.

  • O modo multithread é ativado por padrão para maximizar a pressão de solicitações no servidor e evitar que o cliente se torne um gargalo.

Instale o resp-benchmark:

pip install resp-benchmark==0.1.7

Após a instalação, execute resp-benchmark --help para ver a lista completa de opções de configuração.

Se você usar o redis-benchmark, utilize o Redis 7.0 ou posterior para suporte multithread otimizado.

Executar os testes

Antes de começar

Limpe o banco de dados antes de cada teste para evitar interferências de dados existentes.

Ajustar a contagem de conexões

A contagem de conexões (-c) afeta diretamente seus resultados:

  • Poucas conexões: Carga insuficiente no servidor, resultando em baixo QPS que não reflete a capacidade máxima.

  • Muitas conexões: A capacidade de processamento do servidor é excedida, fazendo com que pacotes de dados enfileirem no link de rede e aumentando a latência.

Comece com -c 128 e ajuste com base nos seus resultados. Valores comuns são 32, 64, 128, 192 e 256. Se você omitir -c, o resp-benchmark selecionará um valor automaticamente.

Comandos de teste

SET

Testa o desempenho do comando SET. Intervalo de chaves: 0–10.000.000. Tamanho do valor: 64 bytes. Duração do teste: 20 segundos.

resp-benchmark -h r-bp1u****8qyvemv2em.redis.rds.aliyuncs.com -p 6379 -s 20 "SET {key uniform 10000000} {value 64}"

GET

Testa o desempenho do comando GET. Tamanho do valor: 64 bytes. Duração do teste: 20 segundos.

  1. Carregue os dados de teste. Intervalo de chaves: 0–10.000.000.

    resp-benchmark -h r-bp1u****8qyvemv2em.redis.rds.aliyuncs.com -p 6379 --load -c 256 -P 10 -n 10000000 "SET {key sequence 10000000} {value 64}"
  2. Execute o teste GET.

    resp-benchmark -h r-bp1u****8qyvemv2em.redis.rds.aliyuncs.com -p 6379 -s 20 "GET {key uniform 10000000}"

ZADD

Testa o desempenho de gravação do comando ZADD. Intervalo de chaves: 0–1.000. Intervalo de pontuação: 0–70.000. Máximo de 10.000 membros por chave. Duração do teste: 20 segundos.

resp-benchmark -h r-bp1u****8qyvemv2em.redis.rds.aliyuncs.com -p 6379 -s 20 "ZADD {key uniform 1000} {rand 70000} {key uniform 10000}"

ZSCORE

Testa o desempenho do comando ZSCORE. Duração do teste: 20 segundos.

  1. Carregue os dados de teste. Intervalo de chaves: 0–1.000. 10.007 membros por chave.

    resp-benchmark -h r-bp1u****8qyvemv2em.redis.rds.aliyuncs.com -p 6379 --load -c 256 -P 10 -n 10007000 "ZADD {key sequence 1000} {rand 70000} {key sequence 10007}"
  2. Execute o teste ZSCORE.

    resp-benchmark -h r-bp1u****8qyvemv2em.redis.rds.aliyuncs.com -p 6379 -s 20 "ZSCORE {key uniform 1000} {key uniform 10007}"

HSET

Testa o desempenho do comando HSET. Intervalo de chaves: 0–1.000. Intervalo de campos: 0–10.000. Tamanho do valor: 64 bytes. Duração do teste: 20 segundos.

resp-benchmark -h r-bp1u****8qyvemv2em.redis.rds.aliyuncs.com -p 6379 -s 20 "HSET {key uniform 1000} {key uniform 10000} {value 64}"

HGET

Testa o desempenho do comando HGET. Duração do teste: 20 segundos.

  1. Carregue os dados de teste. Intervalo de chaves: 0–1.000. 10.007 campos por chave. Tamanho do valor: 64 bytes.

    resp-benchmark -h r-bp1u****8qyvemv2em.redis.rds.aliyuncs.com -p 6379 --load -c 256 -P 10 -n 10007000 "HSET {key sequence 1000} {key sequence 10007} {value 64}"
  2. Execute o teste HGET.

    resp-benchmark -h r-bp1u****8qyvemv2em.redis.rds.aliyuncs.com -p 6379 -s 20 "HGET {key uniform 1000} {key uniform 10007}"

LPUSH

Testa o desempenho do comando LPUSH. Intervalo de chaves: 0–1.000. Tamanho do valor: 64 bytes. Duração do teste: 20 segundos.

resp-benchmark -h r-bp1u****8qyvemv2em.redis.rds.aliyuncs.com -p 6379 -s 20 "LPUSH {key uniform 1000} {value 64}"

LINDEX

Testa o desempenho do comando LINDEX. Duração do teste: 20 segundos.

  1. Carregue os dados de teste. Intervalo de chaves: 0–1.000. 10.000 elementos por chave. Tamanho do valor: 64 bytes.

    resp-benchmark -h r-bp1u****8qyvemv2em.redis.rds.aliyuncs.com -p 6379 --load -c 256 -P 10 -n 10000000 "LPUSH {key sequence 1000} {value 64}"
  2. Execute o teste LINDEX.

    resp-benchmark -h r-bp1u****8qyvemv2em.redis.rds.aliyuncs.com -p 6379 -s 20 "LINDEX {key uniform 1000} {rand 10000}"

SADD

Testa o desempenho do comando SADD. Intervalo de chaves: 0–1.000. Tamanho do valor: 64 bytes. Duração do teste: 20 segundos.

resp-benchmark -h r-bp1u****8qyvemv2em.redis.rds.aliyuncs.com -p 6379 -s 20 "SADD {key uniform 1000} {value 64}"

SISMEMBER

Testa o desempenho do comando SISMEMBER. Duração do teste: 20 segundos.

  1. Carregue os dados de teste. Intervalo de chaves: 0–1.000. 10.007 membros por chave. Tamanho do valor: 64 bytes.

    resp-benchmark -h r-bp1u****8qyvemv2em.redis.rds.aliyuncs.com -p 6379 --load -c 256 -P 10 -n 10007000 "SADD {key sequence 1000} {key sequence 10007}"
  2. Execute o teste SISMEMBER.

    resp-benchmark -h r-bp1u****8qyvemv2em.redis.rds.aliyuncs.com -p 6379 -s 20 "SISMEMBER {key uniform 1000} {key uniform 10007}"

EVALSHA

Testa o desempenho do SET executado via script Lua. Intervalo de chaves: 0–10.000.000. Tamanho do valor: 64 bytes. Duração do teste: 20 segundos.

  1. Carregue o script Lua.

    redis-cli -h r-bp1u****8qyvemv2em.redis.rds.aliyuncs.com -p 6379 SCRIPT LOAD "return redis.call('SET', KEYS[1], ARGV[1])"
  2. Execute o teste EVALSHA usando o resumo SHA1 retornado na etapa anterior.

    resp-benchmark -h r-bp1u****8qyvemv2em.redis.rds.aliyuncs.com -p 6379 -s 20 "EVALSHA d8f2fad9f8e86a53d2a6ebd960b33c4972cacc37 1 {key uniform 10000000} {value 64}"