Todos os produtos
Search
Central de documentação

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

Última atualização: Oct 21, 2026

Use a API do Data Transmission service (DTS) para configure 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 source e de destino devem ser 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 Procedure.

Observações de uso

  • Na sincronização bidirecional, a tarefa direta executa a sincronização inicial completa e a incremental. A tarefa 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 source e de destino enquanto a tarefa de sincronização bidirecional estiver em execução.

  • O DTS consome recursos dos bancos de dados de source 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 as especificações do servidor forem insuficientes, os serviços de banco de dados podem ficar indisponíveis. Antes de iniciar a sincronização, avalie o impacto no desempenho das instâncias de source e de destino. Recomendamos execute a sincronização em horários de baixa demanda.

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

  • Se a memória do destino se esgotar, a evicção de dados poderá causar inconsistências entre a source e o destino. A política padrão maxmemory-policy do Tair (Redis OSS-Compatible) é volatile-lru, que 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 source tiver chaves com política de expiração, o banco de dados de destino poderá apresentar menos chaves ao serem verificadas por comandos como info. Isso ocorre porque as chaves expiradas podem não ser excluídas imediatamente.

    Nota

    A quantidade de chaves sem política de expiração ou ainda válidas é idêntica nos bancos de dados de source e de 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 mais detalhes sobre como ative a conexão direta, consulte Enable direct connection.

  • Se você redimensionar a instância Redis de source (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 assegurar a consistência.

  • Se o endereço de conexão da instância Redis de source mudar durante a sincronização (por exemplo, devido à mudança de zona de disponibilidade ou migração de rede clássica para vpc), reconfigure a tarefa.

  • Ao sincronizar de uma instância Redis standalone para uma cluster, os 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.

  • 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 acabar, a tarefa do DTS falhará com um erro de Out of Memory (OOM).

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

  • Para instâncias Redis autogerenciadas na source, recomendamos defina 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 source 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 configure ou redefinir a tarefa, se o objeto de destino de uma corresponder ao objeto de sincronização da outra:

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

    • Os dados da source da tarefa atual serão sincronizados exclusivamente com o destino dessa mesma tarefa, não servindo como fonte 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 Billing overview.

Limites

Não há suporte para sincronização em cascata unidirecional. Para mais informações, consulte Synchronization topologies.

Comandos que podem ser sincronizados

  • 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 source ou de destino estiver implantada na arquitetura cluster.)

Importante
  • Comandos PUBLISH não podem ser sincronizados.

  • Ao execute os comandos EVAL ou EVALSHA para chamar scripts Lua, o DTS não consegue 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. Como resultado, 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 crie um usuário do Resource Access Management (ram), conceder a esse usuário as permissões de acesso ao DTS e 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.

Crie 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 source está localizada.

    Especifique um valor para estes parâmetros com base nas suas necessidades 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 source.

    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.

Configure uma tarefa de sincronização unidirecional

Neste exemplo, a conta do banco de dados de source tem permissões de leitura no banco de dados de source. A conta do banco de dados de destino tem permissões de leitura e gravação no banco de dados de destino.

Nota

Ao configure a sincronização unidirecional, também é possível usar um banco de dados Redis autogerenciado ou uma instância Tair (Redis-compatible) como source ou destino. O método de configuração é semelhante ao deste exemplo, mas você deve ajustar os parâmetros correspondentes da solicitação, como MigrationReserved.

  1. Faça login no openapi Explorer.

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

    Nota

    É obrigatório 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.

Configure tarefas de sincronização bidirecional

Neste exemplo, as contas de banco de dados usadas para sincronização têm 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 Configure a one-way synchronization task 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 de dados no console do DTS ou chamando a operação Query the status of a data synchronization job.

  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

      É obrigatório 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