全部产品
Search
文档中心

Tair (Redis® OSS-Compatible):Verifikasi data yang dimigrasi

更新时间:Nov 10, 2025

Setelah migrasi Tair (Redis OSS-compatible) selesai, Anda dapat menggunakan alat redis-full-check untuk memverifikasi konsistensi data.

Prasyarat

  • Migrasi data telah selesai.

  • Sebuah instance ECS yang menjalankan Linux telah dibuat. Untuk informasi lebih lanjut, lihat Buat Instance ECS.

  • Instance ECS dapat mengakses instance Redis sumber dan tujuan.

    Catatan
    • Jika instance ECS dan instance Redis berada dalam VPC dan zona yang sama, tambahkan Alamat IP pribadi dari instance ECS ke daftar putih instance Redis. Untuk informasi lebih lanjut, lihat Konfigurasikan Daftar Putih IP.

    • Jika instance ECS dan instance Redis tidak berada dalam VPC atau zona yang sama, gunakan Titik Akhir Publik dari instance Redis untuk terhubung. Untuk informasi lebih lanjut, lihat Gunakan Titik Akhir Publik untuk Terhubung ke Instance.

Skenario

Jika terjadi pengecualian selama migrasi data, data mungkin menjadi tidak konsisten antara instance sumber dan tujuan. Anda dapat menggunakan alat redis-full-check untuk menemukan data yang tidak konsisten. Alat ini memberikan dasar yang andal untuk penyelarasan data.

redis-full-check adalah alat verifikasi data yang dikembangkan oleh Alibaba Cloud untuk Redis. Alat ini mengekstrak dan membandingkan data dari instance sumber dan tujuan. Alat ini menjalankan beberapa putaran perbandingan dan mencatat hasilnya dalam database SQLite3 untuk memverifikasi seluruh set data.

Catatan

Untuk informasi lebih lanjut tentang alat redis-full-check, lihat Halaman Utama redis-full-check di Git.

Prosedur

  1. Masuk ke instance ECS yang dapat mengakses instance Tair (Redis OSS-compatible). Untuk informasi lebih lanjut, lihat Hubungkan ke Instance ECS.

  2. Pada instance ECS, unduh redis-full-check.

    Catatan

    Unduh versi terbaru.

  3. Ekstrak file redis-full-check.tar.gz.

    tar -xvf redis-full-check.tar.gz
  4. Jalankan perintah berikut untuk memverifikasi data:

    ./redis-full-check -s "<Titik akhir sumber 1:Port;Titik akhir sumber 2:Port;...>" -p <Kata sandi sumber> -t <Titik akhir tujuan:Port> -a <Kata sandi tujuan> --m=1 --sourcedbfilterlist=0;2 --targetdbfilterlist=0;2

    Contoh perintah:

    ./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

    Tabel berikut menjelaskan opsi umum. Untuk informasi lebih lanjut, lihat Konfigurasi RedisFullCheck.

    Tabel 1. Opsi Umum untuk redis-full-check

    Opsi

    Deskripsi

    Nilai contoh

    -s

    Titik akhir dan port dari instance Redis sumber.

    Catatan
    • Jika instance Redis sumber adalah kluster, pisahkan titik akhir kluster dengan titik koma (;).

    • Kurung titik akhir kluster dalam tanda kutip ganda (").

    • Opsi ini wajib.

    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

    Nama pengguna dan kata sandi untuk instance Redis sumber. Gunakan format <username>:<password>. Contoh: testaccount:Test1234. Jika instance tidak memiliki nama pengguna, masukkan hanya kata sandi. Jika instance tidak memiliki kata sandi, Anda dapat meninggalkan opsi ini kosong.

    SourcePwd233 atau testaccount:Test1234

    -t

    Titik akhir dan port dari instance Redis tujuan.

    Catatan
    • Jika instance Redis tujuan adalah kluster, pisahkan titik akhir kluster dengan titik koma (;).

    • Kurung titik akhir kluster dalam tanda kutip ganda (").

    • Opsi ini wajib.

    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

    Nama pengguna dan kata sandi untuk instance Redis tujuan. Gunakan format <username>:<password>. Contoh: testaccount:Test1234. Jika instance tidak memiliki nama pengguna, masukkan hanya kata sandi. Jika instance tidak memiliki kata sandi, Anda dapat meninggalkan opsi ini kosong.

    TargetPwd233 atau testaccount:Test1234

    --sourcedbtype

    Jenis database sumber.

    • 0 (default): Edisi Node Tunggal atau Edisi Standar

    • 1: Edisi Kluster dalam mode koneksi langsung

    • 2: Edisi Kluster dalam modus proxy

    --sourcedbtype=1

    --sourcedbfilterlist

    DB yang akan diverifikasi dalam instance Redis sumber.

    Catatan
    • Opsi ini tidak diperlukan untuk kluster Redis open source.

    • Untuk jenis kluster lainnya, jika Anda tidak menentukan opsi ini, semua DB akan diverifikasi.

    • Pisahkan beberapa DB dengan titik koma (;).

    --sourcedbfilterlist=0;1;2

    --targetdbtype

    Jenis database tujuan.

    • 0 (default): Edisi Node Tunggal atau Edisi Standar

    • 1: Edisi Kluster dalam mode koneksi langsung

    • 2: Edisi Kluster dalam modus proxy

    --targetdbtype=0

    --targetdbfilterlist

    DB yang akan diverifikasi dalam instance Redis tujuan.

    Catatan
    • Opsi ini tidak diperlukan untuk kluster Redis open source.

    • Untuk jenis kluster lainnya, jika Anda tidak menentukan opsi ini, semua DB akan diverifikasi.

    • Pisahkan beberapa DB dengan titik koma (;).

    --targetdbfilterlist=0;1;2

    -d

    Nama file yang menyimpan daftar data yang tidak konsisten. Nama default adalah result.db.

    xxx.db

    --comparetimes

    Jumlah putaran verifikasi. Nilai default adalah 3. Nilai minimum adalah 1. Tidak ada nilai maksimum, tetapi nilai maksimum yang direkomendasikan adalah 5.

    --comparetimes=1

    -m

    Mode verifikasi.

    • 1: Memverifikasi seluruh data.

    • 2 (default): Memverifikasi hanya panjang nilai.

    • 3: Memeriksa apakah kunci ada.

    • 4: Memverifikasi seluruh data tetapi mengabaikan kunci besar.

    -m=1

    --qps

    Ambang batas throttling. Nilai default adalah 15000.

    Catatan
    • Nilai minimum adalah 1.

    • Nilai maksimum bergantung pada performa server.

    --qps=10

    --filterlist

    Daftar kunci yang akan dibandingkan. Pisahkan kunci dengan garis vertikal (|).

    Catatan
    • abc*: Cocokkan semua kunci yang dimulai dengan abc.

    • abc: Cocokkan hanya kunci abc.

    --filterlist=abc*|efg|m*

    Catatan

    Setelah Anda menjalankan perintah, hasil verifikasi ditampilkan di baris perintah. Output berikut menunjukkan bahwa dua kunci tidak konsisten. Jika jumlah kunci yang tidak konsisten adalah 0, data konsisten.

    all finish successfully, totally 2 keys or fields conflict
  5. Periksa database SQLite3 yang menyimpan kunci yang tidak konsisten.

    1. Jalankan perintah sqlite3 result.db.3.

      Catatan

      Secara default, daftar data yang tidak konsisten disimpan ke file result.db.3.

    2. Jalankan perintah SELECT * FROM key;.

      Gambar 1. Lihat Daftar Data yang Tidak Konsisten

      Catatan

      Database SQLite3 berisi tabel `key` dan `field`.

      • Tabel `key` menyimpan kunci yang tidak konsisten.

      • Tabel `field` menyimpan detail tentang ketidaksesuaian dalam tipe data hash, set, zset, dan list.