Rumah > pangkalan data > Redis > Ketahui lebih lanjut tentang replikasi tuan-hamba dalam Redis

Ketahui lebih lanjut tentang replikasi tuan-hamba dalam Redis

青灯夜游
Lepaskan: 2021-12-27 10:17:27
ke hadapan
2184 orang telah melayarinya

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!

Ketahui lebih lanjut tentang replikasi tuan-hamba dalam Redis

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

Ketahui lebih lanjut tentang replikasi tuan-hamba dalam Redis

  • Satu master Berbilang hamba

Ketahui lebih lanjut tentang replikasi tuan-hamba dalam Redis

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,注释掉即可)
Salin selepas log masuk

3. Konfigurasikan replikasi tuan-hamba

#从本机master6379的redis实例复制数据,Redis5.0之前使用slaveof
replicaof 192.168.0.60 6379

#配置从节点只读
replica‐read‐only yes
Salin selepas log masuk

4. Mulakan nod hamba

redis‐server redis.conf
Salin selepas log masuk

5. Sambungkan nod hamba

redis‐cli ‐p 6380
Salin selepas log masuk

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
Salin selepas log masuk

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

Ketahui lebih lanjut tentang replikasi tuan-hamba dalam Redis

Ketahui lebih lanjut tentang replikasi tuan-hamba dalam Redis

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)

Ketahui lebih lanjut tentang replikasi tuan-hamba dalam Redis

  • Selepas pelayan induk menerima sambungan Soket pelayan hamba, ia mencipta status klien yang sepadan. Ia bersamaan dengan pelayan hamba yang menjadi pelanggan pelayan induk.

Ketahui lebih lanjut tentang replikasi tuan-hamba dalam Redis

  • 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 kebenaranKetahui lebih lanjut tentang replikasi tuan-hamba dalam Redis

    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 Ketahui lebih lanjut tentang replikasi tuan-hamba dalam Redis

Selepas Redis utama menerima arahan PSYNC, melaksanakan arahan bgsave akan menghasilkan petikan rdb terkini,

3 menghantar petikan rdb kepada hamba Redis

Apabila 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

Ketahui lebih lanjut tentang replikasi tuan-hamba dalam Redis

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

Ketahui lebih lanjut tentang replikasi tuan-hamba dalam Redis

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

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!

Label berkaitan:
sumber:juejin.cn
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan