Todos os produtos
Search
Central de documentação

Tair (Redis® OSS-Compatible):Verificar dados migrados

Última atualização: Jun 26, 2026

Após concluir a migração de dados para uma instância do Tair (Redis OSS-compatible), use a ferramenta redis-full-check para verificar a consistência dos dados.

Pré-requisitos

Casos de uso

Erros durante a migração podem causar inconsistências entre as instâncias de origem e de destino. Use o redis-full-check para identificar discrepâncias e corrigir os dados.

O redis-full-check é uma ferramenta de verificação de dados do Redis desenvolvida pela Alibaba Cloud. Ela extrai dados da origem e do destino, executa múltiplas rodadas de comparação e registra diferenças em um banco de dados SQLite3.

Nota

Para mais informações sobre o redis-full-check, consulte o repositório do redis-full-check no GitHub.

Procedimento

  1. Conecte-se à instância ECS com acesso à sua instância Tair (Redis OSS-compatible). Para mais informações, consulte Conectar-se a uma instância ECS.

  2. Baixe a ferramenta redis-full-check.

    Nota

    Recomendamos baixar a versão mais recente.

  3. Descompacte o arquivo redis-full-check.tar.gz.

    tar -xvf redis-full-check.tar.gz
  4. Execute o comando a seguir para verificar os dados:

    ./redis-full-check -s "<source_endpoint_1:port;source_endpoint_2:port;...>" -p <source_password> -t <destination_endpoint:port> -a <destination_password> --m=1 --sourcedbfilterlist=0;2 --targetdbfilterlist=0;2

    Exemplo de comando:

    ./redis-full-check -s "10.xx.xx.1:6379" -p SourcePwd233 -t "r-bp1zc********.redis.rds.aliyuncs.com:6379" -a testaccount:Test1234 --m=1 --sourcedbfilterlist=0;2 --targetdbfilterlist=0;2

    Para obter a lista completa de parâmetros, consulte o Guia de configuração do redis-full-check.

    Tabela 1. Parâmetros comuns do redis-full-check

    Parâmetro

    Descrição

    Exemplo

    -s

    Endpoint e porta da instância Redis de origem.

    Nota
    • Se a origem for uma instância cluster, separe vários endpoints com ponto e vírgula (;).

    • Coloque os endpoints entre aspas duplas ("").

    • Parâmetro obrigatório.

    r-bp1xxxxxxxxxxxxx.redis.rds.aliyuncs.com:6379
    "10.xx.xx.1:7000;10.xx.xx.1:7001;10.xx.xx.2:7002;10.xx.xx.2:7003"

    -p

    Credenciais da instância Redis de origem, no formato <username>:<password>. Exemplo: testaccount:Test1234. Se a instância não exigir nome de usuário, especifique apenas a senha. Caso não exija senha, omita este parâmetro.

    SourcePwd233 ou testaccount:Test1234

    -t

    Endpoint e porta da instância Redis de destino.

    Nota
    • Se o destino for uma instância cluster, separe vários endpoints com ponto e vírgula (;).

    • Coloque os endpoints entre aspas duplas ("").

    • Parâmetro obrigatório.

    r-bp1xxxxxxxxxxxxx.redis.rds.aliyuncs.com:6379
    "10.xx.xx.1:7000;10.xx.xx.1:7001;10.xx.xx.2:7002;10.xx.xx.2:7003"

    -a

    Credenciais da instância Redis de destino, no formato <username>:<password>. Exemplo: testaccount:Test1234. Se a instância não exigir nome de usuário, especifique apenas a senha. Caso não exija senha, omita este parâmetro.

    TargetPwd233 ou testaccount:Test1234

    --sourcedbtype

    Tipo da instância de origem. Valores válidos:

    • 0 (Padrão): standalone ou standard

    • 1: cluster (modo de conexão direta)

    • 2: cluster (modo proxy)

    --sourcedbtype=1

    --sourcedbfilterlist

    Bancos de dados a verificar na instância Redis de origem.

    Nota
    • Parâmetro desnecessário para instâncias cluster do Redis OSS.

    • Para outros tipos de instância cluster, todos os bancos de dados são verificados por padrão.

    • Para especificar vários bancos de dados, separe os números com ponto e vírgula (;).

    --sourcedbfilterlist=0;1;2

    --targetdbtype

    Tipo da instância de destino. Valores válidos:

    • 0 (Padrão): standalone ou standard

    • 1: cluster (modo de conexão direta)

    • 2: cluster (modo proxy)

    --targetdbtype=0

    --targetdbfilterlist

    Bancos de dados a verificar na instância Redis de destino.

    Nota
    • Parâmetro desnecessário para instâncias cluster do Redis OSS.

    • Para outros tipos de instância cluster, todos os bancos de dados são verificados por padrão.

    • Para especificar vários bancos de dados, separe os números com ponto e vírgula (;).

    --targetdbfilterlist=0;1;2

    -d

    Nome do arquivo de saída da lista de dados inconsistentes. Padrão: result.db.

    xxx.db

    --comparetimes

    Número de rodadas de verificação. Padrão: 3. Mínimo: 1. Recomendamos valor igual ou inferior a 5.

    --comparetimes=1

    -m

    Modo de verificação. Valores válidos:

    • 1: verificação completa.

    • 2 (Padrão): verifica apenas o tamanho dos valores.

    • 3: verifica apenas a existência das chaves.

    • 4: executa verificação completa, mas ignora chaves grandes.

    -m=1

    --qps

    Limite de consultas por segundo (QPS). Valor padrão: 15000.

    Nota
    • Valor mínimo: 1.

    • Valor máximo dependente do desempenho do servidor.

    --qps=10

    --filterlist

    Lista de chaves a comparar, separadas por barras verticais (|).

    Nota
    • abc*: corresponde a todas as chaves iniciadas com "abc".

    • abc: corresponde apenas à chave "abc".

    --filterlist=abc|efg|m

    Nota

    Ao concluir o comando, a ferramenta exibe um resumo na linha de comando. A saída de exemplo indica duas chaves inconsistentes. O valor 0 significa que os dados estão consistentes.

    all finish successfully, totally 2 keys or fields conflict
  5. Visualize o banco de dados SQLite3 com as chaves inconsistentes.

    1. Execute sqlite3 result.db.3.

      Nota

      Por padrão, a lista de dados inconsistentes é salva em result.db.3.

    2. Execute SELECT * FROM key;.

      [root@redis-server RedisFullCheck]# sqlite3 result.db.3
      SQLite version 3.7.17 2013-05-20 00:56:22
      Enter ".help" for instructions
      Enter SQL statements terminated with a ";"
      sqlite> SELECT * FROM key;
      1|differentkey1|string|lack_target|0|10|0
      2|differentkey2|list|lack_target|0|4|0
      sqlite>
      Nota

      O banco de dados SQLite3 contém duas tabelas: key e field.

      • A tabela key armazena as chaves inconsistentes.

      • Para os tipos de dados hash, set, zset e list, a tabela field armazena detalhes sobre os dados inconsistentes.