Cara Redis melaksanakan replikasi tuan-hamba
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.
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.
Kemudian kami mengubah suai ketiga-tiga fail redis.conf ini masing-masing.
①、Ubah suai daemoni ya
Menunjukkan bahawa Redis yang ditentukan akan dimulakan sebagai proses daemon (bermula di latar belakang)
②, konfigurasikan pidfile laluan fail PID
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
④, nama fail log konfigurasi
⑤、Konfigurasikan nama fail rdb
1
|
redis-cli -p 6379 redis-cli -p 6381 |
2. Tetapkan hubungan tuan-hamba
① Lihat peranan nod melalui arahan replikasi maklumat
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
①, replikasi tambahan
Nod induk melaksanakan perintah k1 v1, bolehkah nod hamba dapat k1?②, 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?
Jika Master nod induk menutup telefon, adakah peranan kedua-dua nod hamba akan berubah?
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.4. 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:
① Cipta fail sentinel.conf baharu dalam direktori fail konfigurasi Nama mestilah tidak salah kemudian konfigurasikan kandungan yang sepadan
|
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
Antara muka permulaan: Seterusnya, kami membunuh hos 6379 dan melihat apa yang berlaku kepada nod hamba. Selepas membunuh nod induk, kami menyemak log cetakan latar belakang dan mendapati 6381 mengundi untuk menjadi nod induk. Pada masa ini kami menyemak maklumat nod nod hamba 6381: 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-hambaFungsi 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-hambaWalaupun 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!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



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

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

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

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.

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.

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.
