Anda dapat memanggil operasi API dari Data Transmission Service (DTS) di OpenAPI Explorer untuk mengonfigurasi sinkronisasi satu arah atau dua arah antara instans Tair (Redis OSS-Compatible) Enhanced Edition. Topik ini menjelaskan catatan penggunaan dan menyediakan contoh kode.
Prasyarat
Instans sumber dan tujuan adalah Tair (Redis OSS-Compatible) Enhanced Edition yang menjalankan Redis 5.0.
Untuk sinkronisasi satu arah, instans sumber tidak boleh berupa instans optimasi penyimpanan. Untuk sinkronisasi dua arah, baik instans sumber maupun tujuan tidak boleh berupa instans optimasi penyimpanan.
Parameter appendonly harus disetel ke ya jika instans sumber merupakan instans optimasi memori persisten dari Tair (Redis OSS-Compatible) Enhanced Edition.
Arsitektur instans tidak dibatasi. Arsitektur dapat berupa cluster, standard, atau read/write splitting.
Catatan Penggunaan
Selama sinkronisasi dua arah, tugas sinkronisasi data dalam arah maju melakukan sinkronisasi data penuh awal dan sinkronisasi data tambahan. Tugas sinkronisasi data dalam arah sebaliknya hanya melakukan sinkronisasi data tambahan.
PeringatanUntuk memastikan konsistensi data, jangan modifikasi atau tulis data ke key yang sama di basis data sumber dan tujuan saat tugas sinkronisasi dua arah sedang berjalan.
DTS menggunakan sumber daya dari basis data sumber dan tujuan selama sinkronisasi data penuh awal. Hal ini mungkin meningkatkan beban pada server basis data. Jika Anda menyinkronkan sejumlah besar data atau jika spesifikasi server tidak sesuai dengan kebutuhan Anda, layanan basis data mungkin tidak tersedia. Sebelum menyinkronkan data, evaluasi dampak sinkronisasi data terhadap kinerja instans sumber dan tujuan. Kami sarankan Anda menyinkronkan data selama jam-jam sepi.
Kami sarankan Anda tidak menjalankan perintah
FLUSHDBatauFLUSHALLdi instans sumber selama sinkronisasi data. Jika Anda menjalankan salah satu perintah tersebut, ketidaksesuaian data mungkin terjadi antara instans sumber dan tujuan.Secara default, parameter maxmemory-policy yang menentukan bagaimana data dikeluarkan disetel ke volatile-lru untuk instans Tair (Redis OSS-compatible). Jika instans tujuan memiliki memori yang tidak mencukupi, ketidaksesuaian data mungkin terjadi antara instans sumber dan tujuan karena pengeluaran data. Dalam hal ini, tugas sinkronisasi data tidak berhenti berjalan.
Untuk mencegah ketidaksesuaian data, kami sarankan Anda menyetel maxmemory-policy ke noeviction untuk instans tujuan. Dengan cara ini, tugas sinkronisasi data gagal jika instans tujuan memiliki memori yang tidak mencukupi, tetapi kehilangan data dapat dicegah untuk instans tujuan.
CatatanUntuk informasi lebih lanjut tentang kebijakan pengeluaran data, lihat Apa kebijakan pengeluaran default?
Jika kebijakan kedaluwarsa diaktifkan untuk key tertentu di basis data sumber, key tersebut mungkin tidak dihapus segera setelah kedaluwarsa. Oleh karena itu, jumlah key di basis data tujuan mungkin lebih sedikit daripada di basis data sumber. Anda dapat menjalankan perintah INFO untuk melihat jumlah key di basis data tujuan.
CatatanJumlah key yang tidak memiliki kebijakan kedaluwarsa atau belum kedaluwarsa sama antara basis data sumber dan tujuan.
Jika koneksi langsung dinonaktifkan untuk instans tujuan Tair (Redis OSS-Compatible) Enhanced Edition, DTS menggunakan mode pengalihan proxy untuk menulis data ke instans tujuan.
CatatanUntuk informasi lebih lanjut tentang cara mengaktifkan koneksi langsung, lihat Aktifkan mode koneksi langsung.
Selama sinkronisasi data, jika jumlah shard di instans sumber bertambah atau berkurang atau jika spesifikasi instans diubah (misalnya, kapasitas memori ditingkatkan), Anda harus mengonfigurasi ulang tugas sinkronisasi data. Untuk memastikan konsistensi data, kami sarankan Anda membersihkan data yang telah disinkronkan ke instans tujuan sebelum mengonfigurasi ulang tugas sinkronisasi data.
Selama sinkronisasi data, titik akhir instans sumber mungkin berubah. Misalnya, titik akhir instans sumber berubah jika zona instans berubah atau jenis jaringan berubah dari jaringan klasik ke Virtual Private Cloud (VPC). Dalam hal ini, Anda harus mengonfigurasi ulang tugas sinkronisasi data.
Batas operasi untuk menyinkronkan basis data sumber Redis Edisi Dasar ke basis data tujuan Redis Edisi Kluster: Karena kluster hanya mengizinkan satu perintah untuk beroperasi pada satu slot, jika beberapa operasi key dilakukan di basis data sumber dan key-key tersebut tidak berada di slot yang sama atau melibatkan beberapa slot, kesalahan berikut akan terjadi:
CROSSSLOT Keys in request don't hash to the same slotKami sarankan Anda melakukan operasi hanya pada satu key selama sinkronisasi data. Ini mencegah tugas sinkronisasi data terganggu.
Jika instans tujuan diterapkan dalam arsitektur kluster dan jumlah memori yang digunakan oleh sebuah shard di instans tujuan mencapai batas atas, atau jika ruang penyimpanan yang tersedia di instans tujuan tidak mencukupi, tugas sinkronisasi data gagal karena kehabisan memori (OOM).
Jika fitur enkripsi data transparan (TDE) diaktifkan untuk instans sumber atau tujuan, Anda tidak dapat menggunakan DTS untuk menyinkronkan data dari basis data sumber ke basis data tujuan.
Periode timeout untuk replikasi data antara node master dan replika di basis data Redis ditentukan oleh parameter repl-timeout. Kami sarankan Anda menjalankan perintah
config set repl-timeout 600untuk menyetel periode timeout menjadi 600 detik untuk instans sumber. Jika instans sumber menyimpan sejumlah besar data, Anda dapat meningkatkan nilai parameter repl-timeout berdasarkan kebutuhan bisnis Anda.
Penagihan
| Jenis Sinkronisasi | Biaya Konfigurasi Tugas |
| Sinkronisasi skema dan data penuh | Gratis. |
| Sinkronisasi data tambahan | Dikenakan biaya. Untuk informasi lebih lanjut, lihat Ikhtisar Penagihan. |
Batasan
Sinkronisasi kaskade satu arah tidak didukung. Untuk informasi lebih lanjut, lihat Topologi Sinkronisasi.
Perintah yang dapat disinkronkan
APPEND
BITOP, BLPOP, BRPOP, dan BRPOPLPUSH
DECR, DECRBY, dan DEL
EVAL, EVALSHA, EXEC, EXPIRE, dan EXPIREAT
GEOADD dan GETSET
HDEL, HINCRBY, HINCRBYFLOAT, HMSET, HSET, dan HSETNX
INCR, INCRBY, dan INCRBYFLOAT
LINSERT, LPOP, LPUSH, LPUSHX, LREM, LSET, dan LTRIM
MOVE, MSET, MSETNX, dan MULTI
PERSIST, PEXPIRE, PEXPIREAT, PFADD, PFMERGE, dan PSETEX
RENAME, RENAMENX, RPOP, RPOPLPUSH, RPUSH, dan RPUSHX
SADD, SDIFFSTORE, SELECT, SET, SETBIT, SETEX, SETNX, SETRANGE, SINTERSTORE, SMOVE, SPOP, SREM, dan SUNIONSTORE
UNLINK, ZADD, ZINCRBY, ZINTERSTORE, ZREM, ZREMRANGEBYLEX, ZUNIONSTORE, ZREMRANGEBYRANK, dan ZREMRANGEBYSCORE
SWAPDB (Perintah ini tidak dapat disinkronkan jika instans sumber atau tujuan diterapkan dalam arsitektur kluster.)
Perintah PUBLISH tidak dapat disinkronkan.
Jika Anda menjalankan perintah EVAL atau EVALSHA untuk memanggil skrip Lua, DTS tidak dapat mengidentifikasi apakah skrip Lua ini dieksekusi di basis data tujuan. Hal ini karena basis data tujuan tidak secara eksplisit mengembalikan hasil eksekusi skrip Lua selama sinkronisasi data tambahan.
Saat DTS menjalankan perintah SYNC atau PSYNC untuk mentransfer data tipe LIST, DTS tidak membersihkan data yang ada. Akibatnya, instans tujuan mungkin berisi rekaman data duplikat.
Sebelum Anda Memulai
Untuk melindungi pasangan AccessKey akun Alibaba Cloud Anda, kami sarankan Anda membuat Pengguna Resource Access Management (RAM), memberikan izin kepada Pengguna RAM untuk mengakses DTS, dan kemudian menggunakan pasangan AccessKey Pengguna RAM untuk memanggil DTS SDK for Java. Untuk informasi lebih lanjut, lihat Kontrol akses ke sumber daya dengan menggunakan Pengguna RAM.
Buat instans sinkronisasi data
Masuk ke OpenAPI Explorer.
Konfigurasikan parameter permintaan berdasarkan kebutuhan bisnis Anda. Tabel berikut menjelaskan parameter.
Parameter
Deskripsi
Nilai
SourceRegion
ID wilayah tempat instans sumber berada.
Tentukan nilai untuk parameter ini berdasarkan kebutuhan bisnis Anda.
DestRegion
ID wilayah tempat instans tujuan berada.
Topology
Topologi sinkronisasi. Nilai valid:
oneway (default): sinkronisasi satu arah.
bidirectional: sinkronisasi dua arah.
SynchronizationJobClass
Kelas instans dari instans sinkronisasi data. Nilai valid: micro, small, medium, dan large.
PayType
Metode penagihan instans sinkronisasi data. Nilai valid:
PrePaid: langganan.
PostPaid (default): bayar sesuai pemakaian.
SourceEndpoint.InstanceType
Tipe instans sumber.
Tetapkan nilainya menjadi Redis.
DestinationEndpoint.InstanceType
Tipe instans tujuan.
Tetapkan nilainya menjadi Redis.
CatatanUntuk informasi lebih lanjut, lihat CreateSynchronizationJob.
Di bagian bawah halaman, klik Initiate Call.
Di tab Response, lihat status permintaan dan respons.
PentingJika permintaan gagal, Anda perlu memodifikasi parameter permintaan berdasarkan pesan yang dikembalikan dalam respons dan mengirimkan permintaan lagi hingga permintaan berhasil.
Opsional. Dapatkan kode contoh dari SDK.

Klik tab SDK Sample Code.
Tentukan versi SDK dan bahasa pemrograman.
Klik ikon
di sudut kanan atas bagian kode.
Konfigurasikan tugas sinkronisasi satu arah
Dalam contoh ini, akun basis data instans sumber memiliki izin baca pada basis data sumber. Akun basis data instans tujuan memiliki izin baca dan tulis pada basis data tujuan.
Saat Anda mengonfigurasi tugas sinkronisasi satu arah, Anda juga dapat menggunakan basis data Redis yang dikelola sendiri atau instans Tair (Redis OSS-Compatible) sebagai basis data sumber atau tujuan. Metode konfigurasi serupa dengan yang dijelaskan dalam topik ini. Namun, Anda harus menentukan parameter permintaan seperti MigrationReserved berdasarkan skenario aktual Anda.
Masuk ke OpenAPI Explorer.
Konfigurasikan parameter permintaan berdasarkan kebutuhan bisnis Anda.
CatatanAnda harus menyetel parameter SynchronizationDirection ke Forward. Untuk informasi lebih lanjut, lihat ConfigureSynchronizationJob.
Di bagian bawah halaman, klik Initiate Call.
Di tab Response, lihat status permintaan dan respons.
PentingJika permintaan gagal, Anda perlu memodifikasi parameter permintaan berdasarkan pesan yang dikembalikan dalam respons dan mengirimkan permintaan lagi hingga permintaan berhasil.
Opsional. Dapatkan kode contoh dari SDK.
Klik tab SDK Sample Code.
Tentukan versi SDK dan bahasa pemrograman.
Klik ikon
di sudut kanan atas bagian kode.
Konfigurasikan tugas sinkronisasi dua arah
Dalam contoh ini, akun basis data yang digunakan untuk sinkronisasi data memiliki izin baca dan tulis.
Konfigurasikan tugas sinkronisasi data dalam arah maju. Untuk informasi lebih lanjut, lihat bagian Konfigurasikan Tugas Sinkronisasi Satu Arah dari topik ini.
Tunggu hingga status tugas sinkronisasi data dalam arah maju berubah menjadi Synchronizing.
CatatanAnda dapat melihat status tugas sinkronisasi data di konsol DTS atau dengan memanggil operasi DescribeSynchronizationJobStatus.
Konfigurasikan tugas sinkronisasi data dalam arah sebaliknya.
Opsional. Masuk ke OpenAPI Explorer.
Konfigurasikan parameter permintaan berdasarkan kebutuhan bisnis Anda.
CatatanAnda harus menyetel parameter SynchronizationDirection ke Reverse. Untuk informasi lebih lanjut, lihat ConfigureSynchronizationJob.
Di bagian bawah halaman, klik Initiate Call.
Di tab Response, lihat status permintaan dan respons.
PentingJika permintaan gagal, Anda perlu memodifikasi parameter permintaan berdasarkan pesan yang dikembalikan dalam respons dan mengirimkan permintaan lagi hingga permintaan berhasil.
Opsional. Dapatkan kode contoh dari SDK.
Klik tab SDK Sample Code.
Tentukan versi SDK dan bahasa pemrograman.
Klik ikon
di sudut kanan atas bagian kode.
Referensi
Lihat Status Koneksi dan Kinerja Sinkronisasi Data
Anda dapat melihat kinerja sinkronisasi data menggunakan metrik kinerja. DTS menyediakan metrik koneksi dan kinerja untuk membantu Anda mengelola tugas sinkronisasi data.
Tambahkan Objek ke Tugas Sinkronisasi Data atau Hapus Objek dari Tugas Sinkronisasi Data
Selama tugas sinkronisasi data, Anda dapat menambahkan objek ke tugas atau menghapus objek dari tugas.