Ketahui lebih lanjut tentang replikasi tuan-hamba dalam Redis
Artikel ini akan memperkenalkan anda kepada replikasi tuan-hamba dalam Redis, memperkenalkan konfigurasi tuan-hamba asas, peranan dan prinsip konfigurasi tuan-hamba, saya harap ia akan membantu anda!
Redis menyokong fungsi replikasi master-slave, yang boleh dilakukan dengan melaksanakan slaveof (ditukar kepada replicaof selepas versi Redis5) atau menetapkan slaveof dalam fail konfigurasi (ditukar kepada replicaof selepas Versi Redis5) Hidupkan fungsi salin. [Cadangan berkaitan: Tutorial video Redis]
- Satu induk dan dua gugusan
- Satu master Berbilang hamba
Tuan-hamba konfigurasi asas
Master Redis konfigurasi
Master Redis konfigurasi pada dasarnya tidak diperlukan Pengubahsuaian, bahagian utama adalah untuk mengkonfigurasi daripada Redis
Konfigurasi daripada Redis
1. Salin fail redis.conf
2. Pengubahsuaian konfigurasi yang berkaitan
# salve的端口号 port 6380 #把pid进程号写入pidfile配置的文件 pidfile /var/run/redis_6380.pid logfile "6380.log" #指定数据存放目录 dir /usr/local/redis‐5.0.3/data/6380 #需要注释掉bind #bind127.0.0.1(bind绑定的是自己机器网卡的ip,如果有多块网卡可以配多个ip,代表允许客户端通过机器的哪些网卡ip去访问,内网一般可以不配置bind,注释掉即可)
3. Konfigurasikan replikasi tuan-hamba
#从本机master6379的redis实例复制数据,Redis5.0之前使用slaveof replicaof 192.168.0.60 6379 #配置从节点只读 replica‐read‐only yes
4. Mulakan nod hamba
redis‐server redis.conf
5. Sambungkan nod hamba
redis‐cli ‐p 6380
6 contoh untuk melihat sama ada tika 6380 boleh disegerakkan dalam masa Data yang baru diubah suai
docker run --name redis-6381 -v /Users/yujiale/docker/redis/conf/redis6381.conf:/etc/redis/redis.conf -v /Users/yujiale/docker/redis/conf/sentinel6381.conf:/etc/redis/sentine.conf -v /Users/yujiale/docker/redis/data6381:/data --network localNetwork --ip 172.172.0.14 -p 16381:6379 -d redis:6.2.6 redis-server /etc/redis/redis.conf --appendonly yes
Peranan konfigurasi tuan-hamba
Pemisahan baca dan tulis
- Satu tuan dan berbilang hamba, penyegerakan hamba tuan
- Tuan bertanggungjawab untuk menulis, dan hamba bertanggungjawab membaca
- Meningkatkan prestasi dan daya pengeluaran Redis
- Isu konsistensi data antara tuan dan hamba
Pemulihan bencana data
- Hamba adalah sandaran tuan
- Tuan sedang down, dan hamba boleh membaca tetapi tidak menulis
- Secara lalai, tuan Selepas masa henti, mesin hamba tidak boleh digunakan oleh hos
- Sentinel boleh melaksanakan pertukaran tuan-hamba untuk mencapai ketersediaan yang tinggi
Prinsip kerja tuan-hamba Redis
Salinan penuh replikasi tuan-hamba
Hanya kali pertama hamba Redis menyambung kepada tuan Redis ialah salinan penuh Jika ia adalah penyambungan semula jangka pendek, ia mungkin salinan penuh atau salinan separa.
- Carta Aliran
1. Wujudkan sambungan Socker yang panjang Redis
Slaver mewujudkan sambungan soket dengan induk
pemproses acara fail berkaitan slaver
- Pemproses ini menerima fail RDB (salinan penuh) dan menerima komunikasi Master Tulis arahan (salinan tambahan)
- Selepas pelayan induk menerima sambungan Soket pelayan hamba, ia mencipta status klien yang sepadan. Ia bersamaan dengan pelayan hamba yang menjadi pelanggan pelayan induk.
-
Hantar arahan ping
-
Slaver menghantar arahan ping kepada Master
1 Semak status baca dan tulis soket
2. Semak sama ada Master boleh memprosesnya secara normal
-
Respons Master:
-
1 ralat, menunjukkan bahawa Master tidak normal
3, menunjukkan tamat masa rangkaian
-
-
Pengesahan kebenaran
- Selepas tuan dan hamba disambungkan seperti biasa, lakukan pengesahan kebenaran
- Tuan tidak menetapkan kata laluan (requirepass=""), dan hamba tidak perlu menetapkan kata laluan (masterauth="" ")
Tuan menetapkan kata laluan (requirepass!=""), hamba perlu menetapkan kata laluan (masterauth=nilai requirepass master)
atau hamba menghantar kata laluan kepada tuan melalui arahan auth
2. Redis utama menerima arahan PSYNC
Selepas Redis utama menerima arahan PSYNC, melaksanakan arahan bgsave akan menghasilkan petikan rdb terkini,
3 menghantar petikan rdb kepada hamba RedisApabila tuan Redis menghantar petikan rdb kepada hamba Redis, tuan akan terus menerima permintaan pelanggan, dan ia akan Permintaan yang boleh mengubah suai set data dicache dalam ingatan dan disimpan dalam cache penimbal relp- Fasa syot kilat penyegerakan: Master mencipta dan menghantar syot kilat RDB kepada Hamba, dan Hamba memuatkan dan menghuraikan syot kilat. Master juga menyimpan arahan tulis baharu yang dijana semasa fasa ini ke dalam penimbal.
4 Terima petikan rdb daripada nod
Selepas menerima petikan rdb daripada nod, kosongkan data lama dan muatkan fail rdb
5. Redis induk menghantar fail cache penimbal kepada Redis hamba
Fasa penimbal tulis segerak: Master menyegerakkan perintah operasi tulis yang disimpan dalam penimbal kepada Slave.
6. Terima fail cache penimbal daripada nod
Terima fail cache penimbal daripada nod dan muatkan fail cache penimbal ke dalam memori
7. Master Redis secara berterusan menghantar arahan kepada nod hamba melalui sambungan panjang Socker
Redis hamba menerima arahan yang dihantar oleh Redis tuan dan melaksanakan arahan semasa
Ikhtisar
Jika anda mengkonfigurasi hamba untuk tuan, tidak kira sama ada hamba bersambung kepada tuan buat kali pertama, ia akan menghantar arahan PSYNC kepada tuan untuk meminta salinan data. Selepas induk menerima arahan PSYNC, ia akan melakukan ketekunan data di latar belakang dan menjana fail petikan RDB terkini melalui bgsave Semasa tempoh kegigihan, induk akan terus menerima permintaan pelanggan, dan ia akan menyimpan permintaan ini yang mungkin mengubah suai. set data dalam ingatan. Apabila kegigihan selesai, tuan akan menghantar set data fail RDB kepada hamba, dan hamba akan mengekalkan data yang diterima untuk menjana RDB, dan kemudian memuatkannya ke dalam memori. Kemudian, tuan menghantar arahan yang dicache sebelum ini dalam ingatan kepada hamba. Apabila sambungan antara tuan dan hamba diputuskan atas sebab tertentu, hamba boleh menyambung semula secara automatik kepada tuan Jika tuan menerima berbilang permintaan sambungan serentak hamba, ia hanya akan berterusan sekali, bukan sekali untuk setiap sambungan, dan kemudian hantar. data berterusan ini kepada berbilang hamba yang disambungkan secara serentak.
Salinan separa salinan tuan-hamba

Proses umum adalah serupa dengan salinan penuh, jadi saya tidak akan menerangkannya secara terperinci
Penerangan ringkas
Apabila tuan dan hamba diputuskan dan disambungkan semula, keseluruhan data secara amnya akan disalin. Walau bagaimanapun, bermula dari redis versi 2.8, redis menggunakan arahan PSYNC yang boleh menyokong replikasi data separa untuk menyegerakkan data dengan induk Hamba dan induk hanya boleh melakukan replikasi data separa (transmisi disambung semula) selepas sambungan rangkaian diputuskan dan disambungkan semula. Master akan membuat baris gilir cache untuk menyalin data dalam ingatannya untuk cache data untuk tempoh terkini Master dan semua hambanya mengekalkan offset data yang disalin dan id proses induk, apabila sambungan rangkaian diputuskan. Selepas itu, hamba akan meminta tuan untuk meneruskan replikasi yang belum selesai, bermula dari indeks data yang direkodkan. Jika ID proses induk berubah, atau pengimbangan data nod hamba terlalu lama dan tidak lagi berada dalam baris gilir cache induk, maka salinan data penuh akan dilakukan. Replikasi tuan-hamba (replikasi separa, resume titik putus) carta alir:
Penyegerakan tambahan replikasi tuan-hamba
Penyegerakan tambahan Redis Ia terutamanya merujuk kepada proses menyegerakkan operasi tulis Master kepada Slave apabila Slave melengkapkan permulaan dan mula berfungsi seperti biasa.
Biasanya, setiap kali Guru melaksanakan arahan tulis, ia akan menghantar arahan tulis yang sama kepada Hamba, dan kemudian Hamba akan menerima dan melaksanakannya.
Pengesan degupan jantung replikasi tuan-hamba
1. Kesan status sambungan tuan-hamba
Kesan status sambungan rangkaian pelayan induk dan hamba Dengan menghantar arahan replikasi INFO ke pelayan induk, anda boleh menyenaraikan pelayan hamba Anda boleh melihat berapa saat telah berlalu sejak arahan terakhir dihantar kepada induk . Nilai lag harus melompat antara 0 atau 1. Jika melebihi 1, ini bermakna sambungan antara tuan dan hamba adalah rosak.
2. Pelaksanaan tambahan hamba-min
Redis boleh dikonfigurasikan untuk menghalang pelayan utama daripada melaksanakan perintah tulis min-hamba-untuk-tulis 3 ( min -replicas-to-write 3) min-slaves-max-lag 10 (min-replicas-max-lag 10) Konfigurasi di atas bermaksud: bilangan pelayan hamba adalah kurang daripada 3, atau kelewatan tiga pelayan hamba (lag ) nilai lebih besar daripada atau sama dengan 10 saat, pelayan induk akan menolak untuk melaksanakan arahan tulis. Nilai kelewatan di sini ialah nilai lag perintah INForeplication di atas.
3. Kesan kehilangan arahan
Jika arahan tulis yang dihantar dari pelayan induk ke pelayan hamba hilang separuh jalan akibat kegagalan rangkaian, maka apabila pelayan hamba menghantar REPLCONF ke pelayan induk Apabila melaksanakan arahan ACK, pelayan induk akan mendapati bahawa pengimbangan replikasi semasa pelayan hamba adalah kurang daripada pengimbangan replikasinya sendiri Kemudian pelayan induk akan mencari data pelayan hamba yang hilang dalam replikasi penimbal tunggakan berdasarkan offset replikasi yang dihantar oleh data pelayan hamba dan menghantar semula data ke pelayan hamba. (Keluaran semula) Rangkaian disegerakkan secara berterusan secara berperingkat: rangkaian diputuskan sambungan dan apabila disambungkan semula
Cara menilai sama ada salinan penuh atau salinan separa

Selepas klien menghantar saveof, nod induk akan menilai sama ada ia adalah salinan pertama , dan jika ya, teruskan Salinan penuh, jika offset runid tidak digunakan untuk menentukan sama ada ia konsisten, jika konsisten, salinan separa akan dilakukan, jika tidak, salinan penuh akan dilakukan.
Untuk lebih banyak pengetahuan berkaitan pengaturcaraan, sila lawati: Video Pengaturcaraan! !
Penyegerakan tambahan Redis Ia terutamanya merujuk kepada proses menyegerakkan operasi tulis Master kepada Slave apabila Slave melengkapkan permulaan dan mula berfungsi seperti biasa.
Biasanya, setiap kali Guru melaksanakan arahan tulis, ia akan menghantar arahan tulis yang sama kepada Hamba, dan kemudian Hamba akan menerima dan melaksanakannya.
Atas ialah kandungan terperinci Ketahui lebih lanjut tentang replikasi tuan-hamba dalam Redis. 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

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

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

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

Pada sistem CentOS, anda boleh mengehadkan masa pelaksanaan skrip LUA dengan mengubah fail konfigurasi REDIS atau menggunakan arahan REDIS untuk mengelakkan skrip jahat daripada memakan terlalu banyak sumber. Kaedah 1: Ubah suai fail konfigurasi Redis dan cari fail konfigurasi Redis: Fail konfigurasi Redis biasanya terletak di /etc/redis/redis.conf. Edit Fail Konfigurasi: Buka fail konfigurasi menggunakan editor teks (seperti Vi atau nano): sudovi/etc/redis/redis.conf Tetapkan had masa pelaksanaan skrip lua: Tambah atau ubah suai baris berikut dalam fail konfigurasi untuk menetapkan masa pelaksanaan maksimum skrip lua (unit: milidor)

Gunakan alat baris perintah redis (redis-cli) untuk mengurus dan mengendalikan redis melalui langkah-langkah berikut: Sambungkan ke pelayan, tentukan alamat dan port. Hantar arahan ke pelayan menggunakan nama arahan dan parameter. Gunakan arahan bantuan untuk melihat maklumat bantuan untuk arahan tertentu. Gunakan perintah berhenti untuk keluar dari alat baris arahan.

Kaunter Redis adalah satu mekanisme yang menggunakan penyimpanan pasangan nilai utama REDIS untuk melaksanakan operasi pengiraan, termasuk langkah-langkah berikut: mewujudkan kekunci kaunter, meningkatkan tuduhan, mengurangkan tuduhan, menetapkan semula, dan mendapatkan tuduhan. Kelebihan kaunter Redis termasuk kelajuan cepat, konkurensi tinggi, ketahanan dan kesederhanaan dan kemudahan penggunaan. Ia boleh digunakan dalam senario seperti pengiraan akses pengguna, penjejakan metrik masa nyata, skor permainan dan kedudukan, dan pengiraan pemprosesan pesanan.

Terdapat dua jenis strategi tamat tempoh data REDIS: Penghapusan berkala: Imbasan berkala untuk memadamkan kunci yang telah tamat tempoh, yang boleh ditetapkan melalui parameter-cap-cap-rempah yang telah tamat tempoh dan parameter kelewatan-cap-remove-time-time. Penghapusan Lazy: Periksa kekunci yang telah tamat tempoh hanya apabila kunci dibaca atau ditulis. Mereka boleh ditetapkan melalui parameter lazon-lazy-expire-expire-expire, lazy-lazy-user-del parameter.

Dalam sistem Debian, panggilan sistem Readdir digunakan untuk membaca kandungan direktori. Jika prestasinya tidak baik, cuba strategi pengoptimuman berikut: Memudahkan bilangan fail direktori: Split direktori besar ke dalam pelbagai direktori kecil sebanyak mungkin, mengurangkan bilangan item yang diproses setiap panggilan readdir. Dayakan Caching Kandungan Direktori: Bina mekanisme cache, kemas kini cache secara teratur atau apabila kandungan direktori berubah, dan mengurangkan panggilan kerap ke Readdir. Cafh memori (seperti memcached atau redis) atau cache tempatan (seperti fail atau pangkalan data) boleh dipertimbangkan. Mengamalkan struktur data yang cekap: Sekiranya anda melaksanakan traversal direktori sendiri, pilih struktur data yang lebih cekap (seperti jadual hash dan bukannya carian linear) untuk menyimpan dan mengakses maklumat direktori
