Jadual Kandungan
1. Ubah suai fail konfigurasi
2. Tetapkan hubungan tuan-hamba
Mod sentinel adalah untuk memantau sama ada redis berjalan dengan baik seperti yang dijangkakan dari semasa ke semasa (sekurang-kurangnya untuk memastikan nod induk wujud Jika terdapat masalah dengan hos, pengawal akan mengalih keluar a mesin hamba di bawah tuan rumah Tetapkannya sebagai tuan rumah baharu dan biarkan hamba lain mewujudkan hubungan tuan-hamba dengan tuan rumah baharu.
5. Prinsip replikasi Master-hamba
6. Kelemahan replikasi induk-hamba
Rumah pangkalan data Redis Cara Redis melaksanakan replikasi tuan-hamba

Cara Redis melaksanakan replikasi tuan-hamba

May 30, 2023 am 08:01 AM
redis

Memperkenalkan Redis sebelum ini, kami semua beroperasi pada pelayan, yang bermaksud bahawa operasi membaca, menulis dan sandaran semuanya dilakukan pada pelayan Redis Apabila bilangan lawatan projek meningkat, Operasi pelayan Redis juga semakin kerap Redis sangat pantas dalam membaca dan menulis, ia juga akan menyebabkan kelewatan tertentu pada tahap tertentu Bagi menyelesaikan masalah akses yang besar, satu kaedah yang biasanya diguna pakai ialah master-slave architecture Master/ Slave dan Master terutamanya untuk menulis. , dan Slave terutamanya untuk membaca Selepas nod Master dikemas kini, ia akan disegerakkan secara automatik ke nod Slave mengikut konfigurasi.

Seterusnya kami akan memperkenalkan cara membina seni bina tuan-hamba.

ps: Di sini saya mensimulasikan berbilang pelayan Redis pada satu mesin Berbanding dengan persekitaran pengeluaran sebenar, konfigurasi asas adalah sama, hanya alamat IP dan nombor port yang berubah.

 Cara Redis melaksanakan replikasi tuan-hamba

1. Ubah suai fail konfigurasi

Mula-mula, salin fail konfigurasi redis.conf ke dalam tiga salinan dan simulasikan tiga pelayan Redis dengan mengubah suai port.

 Cara Redis melaksanakan replikasi tuan-hamba

  Kemudian kami mengubah suai ketiga-tiga fail redis.conf ini masing-masing.

 ①、Ubah suai daemoni ya

 Cara Redis melaksanakan replikasi tuan-hamba

 Menunjukkan bahawa Redis yang ditentukan akan dimulakan sebagai proses daemon (bermula di latar belakang)

 ②, konfigurasikan pidfile laluan fail PID

 Cara Redis melaksanakan replikasi tuan-hamba

  Menunjukkan bahawa apabila redis berjalan sebagai proses daemon, ia akan menulis pid kepada /var/redis secara lalai fail /run/redis_6379.pid

 ③, port port konfigurasi

 Cara Redis melaksanakan replikasi tuan-hamba

  ④, nama fail log konfigurasi

 Cara Redis melaksanakan replikasi tuan-hamba

 ⑤、Konfigurasikan nama fail rdb

 Cara Redis melaksanakan replikasi tuan-hamba

Seterusnya, tukar 6380redis.conf, 6381Redis.conf dikonfigurasikan sekali dan konfigurasi selesai.

Seterusnya kami memulakan ketiga-tiga perkhidmatan ini masing-masing.

 

Cara Redis melaksanakan replikasi tuan-hamba

Gunakan arahan untuk menyemak sama ada Redis dimulakan:

Cara Redis melaksanakan replikasi tuan-hamba

Seterusnya, masukkan tiga pelanggan Redis melalui yang berikut perintah Tamat:

1

1

2

3

redis-cli -p 6379

redis-cli -p 6380

redis-cli -p 6381

23
redis-cli -p 6379 redis-cli -p 6380redis-cli -p 6381

2. Tetapkan hubungan tuan-hamba

① Lihat peranan nod melalui arahan replikasi maklumat

Cara Redis melaksanakan replikasi tuan-hamba Cara Redis melaksanakan replikasi tuan-hamba

Cara Redis melaksanakan replikasi tuan-hamba

Kami mendapati bahawa ketiga-tiga nod ini semuanya memainkan peranan sebagai Master. Bagaimana untuk menukar nod 6380 dan 6381 kepada peranan nod hamba?

 ② Pilih port 6380 dan port 6381 dan laksanakan arahan: SLAVEOF 127.0.0.1 6379

 Cara Redis melaksanakan replikasi tuan-hambaCara Redis melaksanakan replikasi tuan-hamba

Mari lihat maklumat > 

Cara Redis melaksanakan replikasi tuan-hamba

Setelah perkhidmatan dimulakan semula, hubungan tuan-hamba yang ditetapkan sebelum ini melalui arahan akan menjadi tidak sah. Perhubungan ini boleh disimpan secara kekal dengan mengkonfigurasi fail redis.conf.

3. Uji hubungan tuan-hamba

 

①, replikasi tambahan

 Nod induk melaksanakan perintah k1 v1, bolehkah nod hamba dapat k1?

 

Cara Redis melaksanakan replikasi tuan-hamba

 

Cara Redis melaksanakan replikasi tuan-hamba

 

Cara Redis melaksanakan replikasi tuan-hamba

Dapat dilihat dari gambar di atas ianya boleh diperolehi.

 

②, salinan penuh

Dengan melaksanakan SLAVEOF 127.0.0.1 6379, jika terdapat beberapa kunci yang wujud sebelum ini pada nod induk 6379, kemudian selepas melaksanakan arahan nod hamba akan menyalin sebelumnya Adakah anda telah menyalin semua maklumat?

Jawapannya ya, saya tidak akan menyiarkan keputusan ujian di sini.

 

③, Pemisahan baca dan tulis Master-slave

Bolehkah nod induk melaksanakan arahan menulis, dan bolehkah nod hamba melaksanakan arahan menulis?

 

Cara Redis melaksanakan replikasi tuan-hamba

Sebabnya di sini ialah konfigurasi hamba baca sahaja dalam fail konfigurasi 6381redis.conf

Selepas kita menukarnya kepada tidak, ia mungkin untuk melaksanakan arahan tulis.

Cara Redis melaksanakan replikasi tuan-hamba 

Tetapi data yang ditulis oleh nod hamba tidak boleh diperolehi daripada nod hamba atau nod induk.

Cara Redis melaksanakan replikasi tuan-hamba 

④. Nod induk dimatikan

Jika Master nod induk menutup telefon, adakah peranan kedua-dua nod hamba akan berubah?  

 

Cara Redis melaksanakan replikasi tuan-hamba

Dapat dilihat dari rajah di atas bahawa selepas Master nod induk menutup telefon, peranan nod hamba tidak akan berubah .

Cara Redis melaksanakan replikasi tuan-hamba 

⑤ Pemulihan selepas nod induk turun

Selepas Master nod induk menutup telefon, mulakan Master hos dengan segera Adakah nod induk masih memainkan peranan Cikgu?  

Maksudnya, selepas nod induk ditutup, ia dimulakan semula dan meneruskan peranannya sebagai nod induk.

Cara Redis melaksanakan replikasi tuan-hamba4. Mod Sentinel

Melalui konfigurasi sebelumnya, hanya terdapat satu Master nod induk Setelah nod induk dimatikan, nod hamba tidak dapat menjalankan tugas nod induk keseluruhan sistem tidak dapat dijalankan. Mod sentri dilahirkan dari ini, kerana nod hamba secara automatik boleh mengambil alih tanggungjawab nod induk, menyelesaikan masalah masa henti nod induk.

Mod sentinel adalah untuk memantau sama ada redis berjalan dengan baik seperti yang dijangkakan dari semasa ke semasa (sekurang-kurangnya untuk memastikan nod induk wujud Jika terdapat masalah dengan hos, pengawal akan mengalih keluar a mesin hamba di bawah tuan rumah Tetapkannya sebagai tuan rumah baharu dan biarkan hamba lain mewujudkan hubungan tuan-hamba dengan tuan rumah baharu.

 

Langkah-langkah untuk membina mod sentinel:

Cara Redis melaksanakan replikasi tuan-hamba ① Cipta fail sentinel.conf baharu dalam direktori fail konfigurasi Nama mestilah tidak salah kemudian konfigurasikan kandungan yang sepadan

 

Cara Redis melaksanakan replikasi tuan-hamba

1

sentinel monitor 被监控机器的名字(自己起名字) ip地址 端口号 得票数

 Cara Redis melaksanakan replikasi tuan-hamba

Konfigurasikan nama yang dipantau, alamat ip dan nombor port masing-masing , dan bilangan undi. Apabila tuan turun, hamba perlu mengundi untuk memutuskan siapa yang akan mengambil alih sebagai tuan Apabila jumlah undian mencecah 1, tidak cukup untuk menjadi tuan Ia mesti melebihi 1 untuk menjadi tuan

 ② Mulakan sentinel

1

redis-sentinel /etc/redis/sentinel.conf

. 1redis-sentinel /etc/redis/sentinel.conf

Antara muka permulaan:

Cara Redis melaksanakan replikasi tuan-hamba

Seterusnya, kami membunuh hos 6379 dan melihat apa yang berlaku kepada nod hamba.

 Cara Redis melaksanakan replikasi tuan-hamba

Selepas membunuh nod induk, kami menyemak log cetakan latar belakang dan mendapati 6381 mengundi untuk menjadi nod induk.

 Cara Redis melaksanakan replikasi tuan-hamba

Pada masa ini kami menyemak maklumat nod nod hamba 6381:

 Cara Redis melaksanakan replikasi tuan-hamba

Nod 6381 secara automatik menjadi induk nod.

PS: Mod Sentinel juga mempunyai satu masalah kegagalan Jika mesin Sentinel dimatikan, pemantauan tidak akan dapat dilakukan lagi untuk Sentinel turut mewujudkan kluster.

5. Prinsip replikasi Master-hamba

Fungsi replikasi Redis merangkumi dua operasi: penyegerakan (penyegerakan) dan penyebaran perintah (penyebaran perintah).

 ①, Penyegerakan versi lama

Apabila nod hamba mengeluarkan arahan SLAVEOF untuk menghendaki pelayan hamba menyalin pelayan induk, pelayan hamba melengkapkannya dengan menghantar Perintah SYNC ke pelayan induk. Langkah-langkah pelaksanaan arahan:

1. Hantar arahan SYNC dari pelayan ke pelayan induk

2. Pelayan induk yang menerima arahan SYNC melaksanakan arahan BGSAVE, menjana fail RDB dalam latar belakang, dan menggunakan Penampan merekodkan semua arahan tulis yang dilaksanakan dari awal

3. Apabila arahan BGSAVE pelayan induk selesai, pelayan induk akan menghantar fail RDB yang dijana oleh arahan BGSAVE ke pelayan hamba, dan pelayan hamba akan menerima fail RDB dan Kemas kini status pelayan kepada status yang direkodkan dalam fail RDB.

4. Pelayan induk juga menghantar semua arahan tulis dalam penimbal kepada pelayan hamba, dan pelayan hamba melaksanakan arahan yang sepadan.

 ②, penyebaran arahan

Apabila operasi penyegerakan selesai, pelayan induk akan mengubah suai arahan dengan sewajarnya, dan pada masa ini status pelayan hamba dan pelayan induk akan menjadi tidak konsisten.

Untuk memastikan status pelayan induk dan pelayan hamba konsisten, pelayan induk perlu melakukan operasi penyebaran arahan pada pelayan hamba Pelayan induk akan menghantar arahan tulisnya sendiri kepada pelayan hamba untuk pelaksanaan. Selepas pelayan hamba melaksanakan arahan yang sepadan, status pelayan tuan dan hamba terus konsisten.

Ringkasan: Melalui operasi penyegerakan dan fungsi penyebaran perintah, ciri konsistensi tuan-hamba boleh dijamin dengan baik.

Tetapi kami menganggap masalah Jika pelayan hamba tiba-tiba terputus sambungan semasa penyegerakan dengan pelayan induk, dan pelayan induk melakukan beberapa operasi tulis pada masa ini, pelayan hamba memulihkan sambungan, maka anda mesti menjana semula fail RDB daripada pelayan induk dan memuatkannya ke pelayan hamba Walaupun konsistensi boleh dipastikan, status pelayan induk dan hamba sebenarnya konsisten sebelum sambungan diputuskan . Pelayan induk telah melaksanakan beberapa arahan tulis, jadi selepas pelayan hamba memulihkan sambungan, bolehkah ia hanya memutuskan sambungan arahan tulis dan bukannya keseluruhan petikan RDB?

Operasi penyegerakan sebenarnya merupakan operasi yang sangat memakan masa Pelayan induk perlu menjana fail RDB terlebih dahulu melalui arahan BGSAVE, dan kemudian perlu menghantar fail ke pelayan hamba pelayan hamba, ia kemudian memuatkan fail, dan semasa memuatkan, pelayan hamba tidak dapat memproses arahan lain.

Untuk menyelesaikan masalah ini, Redis telah menggunakan arahan penyegerakan baharu PSYNC sejak versi 2.8 untuk menggantikan arahan SYNC. Fungsi penyegerakan semula separa arahan ini digunakan untuk menyelesaikan masalah kecekapan replikasi semula selepas pemotongan. Maksudnya, apabila pelayan hamba menyambung semula ke pelayan induk selepas diputuskan sambungan, pelayan induk hanya menghantar arahan tulis yang dilaksanakan selepas pemotongan sambungan ke pelayan hamba hanya perlu menerima dan melaksanakan arahan tulis ini untuk mengekalkan induk -konsistensi hamba.

6. Kelemahan replikasi induk-hamba

Walaupun replikasi induk-hamba menyelesaikan masalah titik tunggal kegagalan nod induk, semua operasi tulis dilakukan pada nod Induk dan kemudian disegerakkan ke Nod hamba, maka akan ada kelewatan tertentu dalam penyegerakan Apabila sistem sangat sibuk, masalah kelewatan akan menjadi lebih serius, dan ia akan menjadi lebih serius apabila bilangan nod hamba meningkat.

Atas ialah kandungan terperinci Cara Redis melaksanakan replikasi tuan-hamba. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Cara Membina Mod Kluster Redis Cara Membina Mod Kluster Redis Apr 10, 2025 pm 10:15 PM

Mod Redis cluster menyebarkan contoh Redis ke pelbagai pelayan melalui sharding, meningkatkan skalabilitas dan ketersediaan. Langkah -langkah pembinaan adalah seperti berikut: Buat contoh Redis ganjil dengan pelabuhan yang berbeza; Buat 3 contoh sentinel, memantau contoh redis dan failover; Konfigurasi fail konfigurasi sentinel, tambahkan pemantauan maklumat contoh dan tetapan failover; Konfigurasi fail konfigurasi contoh Redis, aktifkan mod kluster dan tentukan laluan fail maklumat kluster; Buat fail nodes.conf, yang mengandungi maklumat setiap contoh Redis; Mulakan kluster, laksanakan perintah Buat untuk membuat kluster dan tentukan bilangan replika; Log masuk ke kluster untuk melaksanakan perintah maklumat kluster untuk mengesahkan status kluster; buat

Cara menggunakan perintah redis Cara menggunakan perintah redis Apr 10, 2025 pm 08:45 PM

Menggunakan Arahan Redis memerlukan langkah -langkah berikut: Buka klien Redis. Masukkan arahan (nilai kunci kata kerja). Menyediakan parameter yang diperlukan (berbeza dari arahan ke arahan). Tekan Enter untuk melaksanakan arahan. Redis mengembalikan tindak balas yang menunjukkan hasil operasi (biasanya OK atau -r).

Cara menggunakan redis berulir tunggal Cara menggunakan redis berulir tunggal Apr 10, 2025 pm 07:12 PM

Redis menggunakan satu seni bina berulir untuk memberikan prestasi tinggi, kesederhanaan, dan konsistensi. Ia menggunakan I/O multiplexing, gelung acara, I/O yang tidak menyekat, dan memori bersama untuk meningkatkan keserasian, tetapi dengan batasan batasan konkurensi, satu titik kegagalan, dan tidak sesuai untuk beban kerja yang berintensifkan.

Cara membaca kod sumber redis Cara membaca kod sumber redis Apr 10, 2025 pm 08:27 PM

Cara terbaik untuk memahami kod sumber REDIS adalah dengan langkah demi langkah: Dapatkan akrab dengan asas -asas Redis. Pilih modul atau fungsi tertentu sebagai titik permulaan. Mulakan dengan titik masuk modul atau fungsi dan lihat baris kod mengikut baris. Lihat kod melalui rantaian panggilan fungsi. Berhati -hati dengan struktur data asas yang digunakan oleh REDIS. Kenal pasti algoritma yang digunakan oleh Redis.

Cara membersihkan data redis Cara membersihkan data redis Apr 10, 2025 pm 10:06 PM

Cara Mengosongkan Data Redis: Gunakan perintah Flushall untuk membersihkan semua nilai utama. Gunakan perintah flushdb untuk membersihkan nilai utama pangkalan data yang dipilih sekarang. Gunakan Pilih untuk menukar pangkalan data, dan kemudian gunakan FlushDB untuk membersihkan pelbagai pangkalan data. Gunakan perintah DEL untuk memadam kunci tertentu. Gunakan alat REDIS-CLI untuk membersihkan data.

Cara Melihat Semua Kekunci di Redis Cara Melihat Semua Kekunci di Redis Apr 10, 2025 pm 07:15 PM

Untuk melihat semua kunci di Redis, terdapat tiga cara: Gunakan perintah kunci untuk mengembalikan semua kunci yang sepadan dengan corak yang ditentukan; Gunakan perintah imbasan untuk melangkah ke atas kunci dan kembalikan satu set kunci; Gunakan arahan maklumat untuk mendapatkan jumlah kunci.

Cara Membaca Gilir Redis Cara Membaca Gilir Redis Apr 10, 2025 pm 10:12 PM

Untuk membaca giliran dari Redis, anda perlu mendapatkan nama giliran, membaca unsur -unsur menggunakan arahan LPOP, dan memproses barisan kosong. Langkah-langkah khusus adalah seperti berikut: Dapatkan nama giliran: Namakannya dengan awalan "giliran:" seperti "giliran: my-queue". Gunakan arahan LPOP: Keluarkan elemen dari kepala barisan dan kembalikan nilainya, seperti LPOP Queue: My-Queue. Memproses Baris kosong: Jika barisan kosong, LPOP mengembalikan nihil, dan anda boleh menyemak sama ada barisan wujud sebelum membaca elemen.

Cara memulakan pelayan dengan redis Cara memulakan pelayan dengan redis Apr 10, 2025 pm 08:12 PM

Langkah -langkah untuk memulakan pelayan Redis termasuk: Pasang Redis mengikut sistem operasi. Mulakan perkhidmatan Redis melalui Redis-server (Linux/macOS) atau redis-server.exe (Windows). Gunakan redis-cli ping (linux/macOS) atau redis-cli.exe ping (windows) perintah untuk memeriksa status perkhidmatan. Gunakan klien Redis, seperti redis-cli, python, atau node.js untuk mengakses pelayan.

See all articles