Berbagi teknologi

7. Proses replikasi master-slave Redis

2024-07-08

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Proses replikasi master-slave Redis

​ Ketika node Redis (node ​​Slave) menerima instruksi yang mirip dengan slaveof 127.0.0.1 6380 hingga node tersebut dapat terus menyalin data dari master, biasanya node tersebut melewati proses berikut:

1. Simpan alamat utama

Ketika slave menerima perintah slaveof, slave akan segera menyimpan alamat master baru.

2. Jalin koneksi

Budak mempertahankan tugas terjadwal, yang akan mencoba membuat sambungan soket dengan master. Jika koneksi tidak dapat dibuat, maka akan dicoba lagi secara berkala hingga koneksi berhasil atau perintah slaveof no one diterima.

3. Budak mengirimkan perintah ping

Setelah koneksi berhasil dibuat, budak akan mengirimkan perintah ping untuk komunikasi pertama. Jika budak tidak menerima balasan dari master, budak akan secara aktif memutuskan sambungan dan tugas terjadwal berikutnya akan mencoba kembali sambungan.

4. Verifikasi identitas budak

​ Jika master menerima perintah ping dari slave, ia tidak akan langsung membalasnya, tetapi akan melakukan otentikasi terlebih dahulu.Jika verifikasi gagal, pesan akan dikirim untuk menolak koneksi; jika verifikasi berhasil, respons keberhasilan koneksi akan dikirim ke budak.

5. Kuasai ketekunan

Setelah komunikasi pertama berhasil, slave akan mengirimkan permintaan sinkronisasi data ke master. Ketika master menerima permintaan tersebut, ia akan membagi proses anak sehingga proses anak dapat segera dipertahankan secara asinkron.

6. Pengiriman data

​ Setelah persistensi selesai, master akan mengeluarkan proses anak dan membiarkan proses anak mengirim data ke budak secara asinkron. Budak akan terus menulis data yang diterima ke file persistensi lokal.

Selama proses sinkronisasi data budak, proses utama master masih terus menerima operasi tulis dari klien, dan tidak hanya menulis data baru ke memori master, tetapi juga menulisnya ke cache sinkronisasi. Setelah data dalam file persistensi master dikirim, master akan mengirimkan data baru dalam cache sinkronisasi ke budak, dan budak akan menulisnya ke file persistensi lokal.Sinkronisasi data selesai

7. Budak mengembalikan data memori

Ketika sinkronisasi data antara budak dan master selesai, budak akan membaca file persisten lokal, mengembalikannya ke memori lokal, dan kemudian menyediakan layanan baca eksternal.

8. Replikasi bertahap yang berkelanjutan

Selama proses penyediaan layanan eksternal oleh slave, master akan terus mengirimkan data baru ke slave secara bertahap untuk memastikan konsistensi data master-slave.