redis-cli adalah CLI bawaan asli dari Redis. Anda dapat menggunakan redis-cli untuk memigrasikan data yang disimpan dalam file append-only (AOF) dari database Redis yang dikelola sendiri ke instance Tair (Redis OSS-compatible). Solusi ini menawarkan fleksibilitas, efisiensi, dan otomatisasi, serta memastikan konsistensi dan integritas data yang dimigrasikan. Namun, solusi ini tidak mendukung sinkronisasi real-time, melainkan hanya mendukung migrasi data offline.
Disarankan untuk melakukan migrasi data selama downtime terjadwal atau pastikan tidak ada data baru yang ditulis selama proses migrasi.
redis-cli adalah program terminal yang mengirim perintah ke dan membaca balasan dari server Redis. redis-cli tidak dirancang untuk menangani skenario migrasi online yang kompleks. Jika Anda ingin melakukan migrasi real-time online, Anda dapat menggunakan Data Transmission Service (DTS). Untuk informasi lebih lanjut, lihat Gunakan DTS untuk Memigrasikan Data dari Database Redis yang Dikelola Sendiri ke Instance Tair (Redis OSS-compatible).
Prasyarat
Alamat IP klien Anda telah ditambahkan ke daftar putih instance Tair (Redis OSS-compatible). Untuk informasi lebih lanjut, lihat Konfigurasikan Daftar Putih.
Persistensi file hanya-tambah (AOF) diaktifkan untuk instans Redis yang dikelola sendiri. Jika fitur ini belum diaktifkan, jalankan perintah
CONFIG SET appendonly yesuntuk mengaktifkannya.Persistensi hibrid dinonaktifkan untuk instans Redis yang dikelola sendiri. Jika instans yang dikelola sendiri adalah Redis 5.0 atau yang lebih baru, jalankan perintah
CONFIG SET aof-use-rdb-preamble nountuk menonaktifkan persistensi hibrid.
Prosedur
Sambungkan ke instance Redis yang dikelola sendiri dan picu penulisan ulang AOF secara manual untuk menyimpan AOF terbaru.
redis-cli -h <Alamat IP instance Redis yang dikelola sendiri> -p <Nomor port> BGREWRITEAOFOutput yang diharapkan:
Penulisan ulang file hanya-tambah di latar belakang dimulaiGunakan AOF untuk mengimpor data ke instance Tair (Redis OSS-compatible) baru. Dalam contoh ini, AOF bernama appendonly.aof digunakan.
redis-cli -h <Alamat IP instance Tair (Redis OSS-compatible)> -p <Nomor port> -a <Kata sandi instance> --pipe < appendonly.aofContoh:
redis-cli -h r-bp1zxszhcgatnx****.redis.rds.aliyuncs.com -p 6379 -a user:password --pipe < appendonly.aofOutput yang Diharapkan:
Semua data telah ditransfer. Menunggu balasan terakhir... Balasan terakhir diterima dari server. kesalahan: 0, balasan: 90Jika pesan serupa dengan yang di atas dikembalikan, migrasi berhasil.
Apa yang harus dilakukan selanjutnya
Jika instance Redis yang dikelola sendiri tidak memerlukan persistensi AOF untuk diaktifkan sepanjang waktu, jalankan perintah berikut untuk menonaktifkan persistensi AOF setelah data diimpor:
redis-cli -h <Alamat IP instance Redis yang dikelola sendiri> -p <Nomor port instance Redis yang dikelola sendiri> CONFIG SET appendonly noFAQ
T: Apa yang harus saya lakukan jika kesalahan
ERR Protocol error: too big inline requestdilaporkan selama impor?Jalankan perintah
CONFIG GET aof-use-rdb-preambleuntuk memeriksa apakah parameteraof-use-rdb-preambledari instans diatur keyes. Jika parameter diatur keyes, jalankan perintahCONFIG SET aof-use-rdb-preamble nountuk mengatur parameter menjadino. Kemudian, buat ulang file AOF dan coba lagi.CatatanJika parameter
aof-use-rdb-preamblediatur keyes, beberapa data dalam file AOF dikompresi. Data terkompresi ini tidak dapat diurai atau diimpor oleh perintah redis-cli.Bagaimana cara mengekspor AOF dari instance Tair (Redis OSS-compatible)?
Instance Tair (Redis OSS-compatible) tidak mendukung ekspor AOF.
T: Mengapa impor data gagal dengan kesalahan
ERR syntax error?Jika versi instance Tair (Redis OSS-compatible) lebih lama daripada versi instance Redis yang dikelola sendiri, masalah ini mungkin terjadi. Beli instance Tair (Redis OSS-compatible) dengan versi yang sama atau lebih baru dari instance Redis yang dikelola sendiri. Sebagai contoh, jika baik instance Redis yang dikelola sendiri maupun instance Tair (Redis OSS-compatible) kompatibel dengan Redis 7.0, kesalahan ini tidak akan terjadi.