Todos os produtos
Search
Central de documentação

Data Transmission Service:Usar OpenAPI para configurar sincronização de dados unidirecional ou bidirecional em instâncias Tair

Última atualização: Jun 27, 2026

Use a API do Data Transmission Service (DTS) para configurar a sincronização de dados unidirecional ou bidirecional em instâncias Tair (Redis OSS-Compatible) Enhanced Edition. Este tópico descreve as observações de uso e fornece exemplos de código.

Pré-requisitos

As instâncias de origem e de destino são instâncias Tair (Redis OSS-Compatible) Enhanced Edition.

Nota

Se uma instância Tair usar persistent memory como storage medium, verifique se o parâmetro appendonly está definido como yes. Para mais informações, consulte Procedimento.

Observações de uso

  • Na sincronização bidirecional, a tarefa de sincronização direta executa a sincronização inicial completa e a incremental. A tarefa de sincronização reversa executa apenas a sincronização incremental.

    Aviso

    Para garantir a consistência dos dados, não modifique nem grave dados na mesma chave nos bancos de dados de origem e de destino enquanto a tarefa de sincronização bidirecional estiver em execução.

  • O DTS consome recursos dos bancos de dados de origem e de destino durante a sincronização inicial completa, o que pode aumentar a carga nos servidores. Se você sincronizar um grande volume de dados ou se as especificações do servidor forem insuficientes, os serviços de banco de dados podem ficar indisponíveis. Antes de iniciar, avalie o impacto da sincronização no desempenho das instâncias de origem e de destino. Recomendamos executar a sincronização em horários de baixa demanda.

  • Não execute os comandos FLUSHDB ou FLUSHALL na instância de origem. Caso contrário, haverá inconsistência de dados entre a origem e o destino.

  • Se a memória do destino se esgotar, a evicção de dados poderá causar inconsistências entre a origem e o destino. A política padrão maxmemory-policy do Tair (Redis OSS-Compatible) é volatile-lru. Essa política não interrompe a tarefa, mas pode remover dados.

    Defina a política de evicção do destino como noeviction para evitar perda de dados. Com essa política, as operações de gravação falham e a tarefa para quando a memória se esgota, mas nenhum dado é removido.

  • Se o banco de dados de origem tiver chaves com política de expiração, o banco de dados de destino pode relatar menos chaves ao usar comandos como info. Isso ocorre porque chaves expiradas podem não ser excluídas imediatamente.

    Nota

    A quantidade de chaves sem política de expiração ou ainda válidas permanece igual em ambos os bancos de dados, origem e destino.

  • Se a conexão direta estiver desativada na instância de destino Tair (Redis OSS-Compatible) Enhanced Edition, o DTS usará o modo de encaminhamento por proxy para gravar dados nessa instância.

    Nota

    Para saber como ativar a conexão direta, consulte Ativar conexão direta.

  • Se você dimensionar a instância Redis de origem (adicionar ou remover shards) ou alterar suas especificações durante a sincronização, reconfigure a tarefa. Limpe todos os dados sincronizados no destino antes da reconfiguração para garantir a consistência.

  • Reconfigure a tarefa se o endereço de conexão da instância Redis de origem mudar durante a sincronização (por exemplo, devido a uma alteração de zona de disponibilidade ou migração de rede clássica para VPC).

  • Ao sincronizar de uma instância Redis standalone para uma cluster, lembre-se de que clusters Redis permitem que um único comando opere em apenas um slot. Operações com múltiplas chaves em slots diferentes retornam o seguinte erro:

    CROSSSLOT Keys in request don't hash to the same slot

    Para evitar interrupções na tarefa, execute apenas operações de chave única durante a sincronização do DTS.

  • A tarefa do DTS falhará com um erro de Out of Memory (OOM) se a instância de destino for do tipo cluster e um de seus shards atingir o limite de memória, ou se o espaço de armazenamento da instância de destino se esgotar.

  • Se o recurso de criptografia transparente de dados (TDE) estiver ativado na instância de origem ou de destino, não será possível usar o DTS para sincronizar dados da origem para o destino.

  • Se a instância Redis de origem for autogerenciada, recomendamos definir o tempo limite de replicação entre slave e master (repl-timeout) para 600 segundos usando o comando config set repl-timeout 600. Se o banco de dados de origem contiver um grande volume de dados, aumente o valor do parâmetro repl-timeout.

  • Uma tarefa de sincronização bidirecional inclui tarefas de sincronização direta e reversa. Ao configurar ou redefinir a tarefa, se o objeto de destino de uma tarefa corresponder ao objeto de sincronização da outra:

    • Permita que apenas uma tarefa sincronize dados completos e incrementais. A outra tarefa deve suportar apenas sincronização incremental.

    • Os dados da origem da tarefa atual são sincronizados apenas com o destino da tarefa atual. Eles não servem como dados de origem para a outra tarefa.

Faturamento

Tipo de sincronização

Preço

Sincronização de esquema e sincronização completa de dados

Gratuito.

Sincronização incremental de dados

Pago. Para mais informações, consulte Visão geral do faturamento.

Limites

A sincronização em cascata unidirecional não é suportada. Para mais detalhes, consulte Topologias de sincronização.

Comandos sincronizáveis

  • APPEND

  • BITOP, BLPOP, BRPOP e BRPOPLPUSH

  • DECR, DECRBY e DEL

  • EVAL, EVALSHA, EXEC, EXPIRE e EXPIREAT

  • GEOADD e GETSET

  • HDEL, HINCRBY, HINCRBYFLOAT, HMSET, HSET e HSETNX

  • INCR, INCRBY e INCRBYFLOAT

  • LINSERT, LPOP, LPUSH, LPUSHX, LREM, LSET e LTRIM

  • MOVE, MSET, MSETNX e MULTI

  • PERSIST, PEXPIRE, PEXPIREAT, PFADD, PFMERGE e PSETEX

  • RENAME, RENAMENX, RPOP, RPOPLPUSH, RPUSH e RPUSHX

  • SADD, SDIFFSTORE, SELECT, SET, SETBIT, SETEX, SETNX, SETRANGE, SINTERSTORE, SMOVE, SPOP, SREM e SUNIONSTORE

  • UNLINK, ZADD, ZINCRBY, ZINTERSTORE, ZREM, ZREMRANGEBYLEX, ZUNIONSTORE, ZREMRANGEBYRANK e ZREMRANGEBYSCORE

  • SWAPDB (Este comando não pode ser sincronizado se a instância de origem ou de destino estiver implantada na arquitetura de cluster.)

Importante
  • Comandos PUBLISH não são sincronizáveis.

  • Se você executar os comandos EVAL ou EVALSHA para chamar scripts Lua, o DTS não conseguirá identificar se esses scripts foram executados no banco de dados de destino. Isso acontece porque o banco de dados de destino não retorna explicitamente os resultados da execução de scripts Lua durante a sincronização incremental.

  • Quando o DTS executa o comando SYNC ou PSYNC para transferir dados do tipo LIST, ele não limpa os dados existentes. Consequentemente, a instância de destino pode conter registros de dados duplicados.

Antes de começar

Criar um par de AccessKey.

Nota

Para proteger o par de AccessKey da sua conta Alibaba Cloud, recomendamos criar um usuário do Resource Access Management (RAM), conceder a esse usuário as permissões de acesso ao DTS e, em seguida, usar o par de AccessKey do usuário RAM para chamar o SDK do DTS para Java. Para mais informações, consulte Controlar o acesso a recursos usando usuários RAM.

Criar uma instância de sincronização de dados

  1. Faça login no OpenAPI Explorer.

  2. Configure os parâmetros da solicitação conforme suas necessidades de negócio. A tabela a seguir descreve os parâmetros.

    Parâmetro

    Descrição

    Valor

    SourceRegion

    ID da região onde a instância de origem está localizada.

    Especifique um valor para estes parâmetros de acordo com seus requisitos de negócio.

    DestRegion

    ID da região onde a instância de destino está localizada.

    Topology

    Topologia de sincronização. Valores válidos:

    • oneway (padrão): sincronização unidirecional.

    • bidirectional: sincronização bidirecional.

    SynchronizationJobClass

    Classe da instância de sincronização de dados.

    PayType

    Método de faturamento da instância de sincronização de dados. Valores válidos:

    • PrePaid: assinatura.

    • PostPaid (padrão): pagamento conforme o uso.

    SourceEndpoint.InstanceType

    Tipo da instância de origem.

    Defina o valor como Redis.

    DestinationEndpoint.InstanceType

    Tipo da instância de destino.

    Defina o valor como Redis.

    Nota

    Para mais informações, consulte CreateSynchronizationJob.

  3. Na parte inferior da página, clique em Initiate Call.

  4. Na aba Response, visualize a resposta da API.

    Nota

    Anote o ID da instância de sincronização (SynchronizationJobId) retornado na resposta.

    Importante

    Se a solicitação falhar, modifique os parâmetros com base na message retornada na resposta e envie a solicitação novamente até obter sucesso.

  5. Opcional: Obtenha o código de exemplo do SDK.

    1. Clique na aba SDK Sample Code.

    2. Especifique a versão do SDK e a linguagem de programação.

    3. Clique no ícone de cópia no canto superior direito da seção de código para copiá-lo.

Configurar uma tarefa de sincronização unidirecional

Neste exemplo, a conta de banco de dados da instância de origem tem permissões de leitura no banco de dados de origem. A conta de banco de dados da instância de destino tem permissões de leitura e gravação no banco de dados de destino.

Nota

Ao configurar a sincronização unidirecional, você também pode usar um banco de dados Redis autogerenciado ou uma instância Tair (Redis-compatible) como origem ou destino. O método de configuração é semelhante ao deste exemplo, mas é necessário ajustar os parâmetros de solicitação correspondentes, como MigrationReserved.

  1. Faça login no OpenAPI Explorer.

  2. Configure os parâmetros da solicitação conforme suas necessidades de negócio.

    Nota

    Defina o parâmetro SynchronizationDirection como Forward. Para mais informações, consulte ConfigureSynchronizationJob.

  3. Na parte inferior da página, clique em Initiate Call.

  4. Na aba Response, visualize a resposta da API.

    Importante

    Se a chamada falhar, verifique a Message na resposta, corrija o problema e tente novamente.

  5. Opcional. Obtenha o código de exemplo do SDK.

    1. Clique na aba SDK Sample Code.

    2. Especifique a versão do SDK e a linguagem de programação.

    3. Clique no ícone de cópia no canto superior direito da seção de código para copiá-lo.

Configurar tarefas de sincronização bidirecional

Neste exemplo, as contas de banco de dados usadas para sincronização possuem permissões de leitura e gravação.

  1. Configure uma tarefa de sincronização de dados na direção direta. Para mais informações, consulte a seção Configurar uma tarefa de sincronização unidirecional deste tópico.

  2. Aguarde até que a tarefa de sincronização direta conclua a inicialização e seu status mude para Synchronizing.

    Nota

    Visualize o status da tarefa de sincronização no console do DTS ou chamando a operação Consultar o status de uma tarefa de sincronização de dados.

  3. Configure a tarefa de sincronização de dados na direção reversa.

    1. Opcional. Faça login no OpenAPI Explorer.

    2. Configure os parâmetros da solicitação conforme suas necessidades de negócio.

      Nota

      Defina o parâmetro SynchronizationDirection como Reverse. Para mais informações, consulte ConfigureSynchronizationJob.

    3. Na parte inferior da página, clique em Initiate Call.

    4. Na aba Response, visualize a resposta da API.

      Importante

      Se a chamada falhar, verifique a Message na resposta, corrija o problema e tente novamente.

    5. Opcional. Obtenha o código de exemplo do SDK.

      1. Clique na aba SDK Sample Code.

      2. Especifique a versão do SDK e a linguagem de programação.

      3. Clique no ícone de cópia no canto superior direito da seção de código para copiá-lo.

Referências