Rumah  >  Artikel  >  pangkalan data  >  Contoh analisis sandaran Redis, pemulihan bencana dan amalan ketersediaan tinggi

Contoh analisis sandaran Redis, pemulihan bencana dan amalan ketersediaan tinggi

WBOY
WBOYke hadapan
2023-05-29 22:03:181085semak imbas

1. Pengenalan ringkas kepada Redis

Redis ialah pangkalan data bukan hubungan nilai kunci berprestasi tinggi Disebabkan ciri prestasi tingginya, ia menyokong ketersediaan tinggi, ketekunan , dan berbilang Pelbagai struktur data, kelompok, dsb. menjadikannya menonjol dan menjadi pangkalan data bukan perhubungan yang biasa digunakan.

Selain itu, Redis mempunyai banyak senario penggunaan.

Cache Sesi

Sesi cache Redis mempunyai kelebihan yang sangat baik, kerana Redis memberikan ketekunan, dalam senario aplikasi yang perlu mengekalkan sesi untuk masa yang lama, seperti senario troli beli-belah Adegan boleh memberikan sokongan sesi panjang yang baik dan memberikan pengguna pengalaman membeli-belah yang baik.

Caching halaman penuh

Dalam WordPress, Pantheon menyediakan wp-redis pemalam yang baik, yang boleh memuatkan halaman yang telah anda semak imbas pada kelajuan terpantas.

Barisan

Redis menyokong operasi senarai dan tetapan, jadi ia sangat sesuai digunakan sebagai platform baris gilir mesej. Kami sering menggunakan fungsi baris gilir Reids untuk mengehadkan pembelian. Contohnya, semasa cuti atau tempoh promosi, beberapa aktiviti mungkin dijalankan untuk menyekat gelagat pembelian pengguna, mengehadkan mereka kepada beberapa pembelian sahaja hari ini atau sekali sahaja dalam tempoh masa. Ia juga lebih sesuai untuk aplikasi.

Kedudukan

Redis melakukan kerja yang sangat baik untuk menambah atau mengurangkan nombor dalam ingatan. Oleh itu, kami menggunakan Redis dalam banyak senario kedudukan Sebagai contoh, tapak web novel meletakkan kedudukan novel dan mengesyorkan novel kedudukan teratas kepada pengguna berdasarkan kedudukan.

Terbitkan/Langgan

Redis menyediakan fungsi terbitkan dan langgan. Terdapat banyak senario untuk menerbitkan dan melanggan Sebagai contoh, kita boleh menggunakan fungsi terbitkan dan langgan Redis berdasarkan pencetus skrip penerbitan dan melanggan sistem sembang.

Selain itu, terdapat banyak senario lain yang menunjukkan prestasi Redis dengan baik.

2. Masalah kegagalan titik tunggal dalam penggunaan Redis

Redis digunakan dalam pelbagai syarikat, dan pelbagai ciri cemerlang serta senario aplikasi yang kaya adalah sebab untuk kewujudannya. Kemudian masalah dan risiko akan datang. Walaupun Redis mempunyai senario aplikasi yang kaya, sesetengah syarikat masih menggunakan penggunaan satu nod secara relatifnya secara konservatif apabila mengamalkan aplikasi Redis, yang membawa risiko keselamatan kepada penyelenggaraan masa hadapan.

Pada tahun 2015, saya telah menangani masalah gangguan perniagaan yang disebabkan oleh satu titik kegagalan. Apabila Redis mula-mula digunakan, ia menggunakan penempatan nod tunggal dan bukannya penempatan yang diedarkan, dan tidak mempertimbangkan isu pemulihan bencana.

Pada masa itu, kami menggunakan pelayan Redis untuk mengawal gelagat pengguna yang membeli barangan diskaun Namun, atas sebab yang tidak diketahui, pelayan nod Redis terputus, menyebabkan kami tidak dapat mengawal pengguna. gelagat pembelian, menyebabkan pengguna tidak dapat mengawal gelagat pembelian untuk satu tempoh masa Gelagat membeli produk diskaun beberapa kali dalam satu tempoh.

Kemalangan downtime seperti ini boleh dikatakan telah menyebabkan kerugian yang tidak boleh diperbaiki kepada syarikat Masalah risiko keselamatan adalah sangat serius sebagai orang yang mengendalikan dan menyelenggara sistem pada masa itu, adalah perlu bagi saya membaiki masalah ini dan menambah baik seni bina pada. Oleh itu, saya mula menyelidik dan belajar tentang cara untuk menyelesaikan satu titik kegagalan Redis dalam aplikasi tidak teragih.

3. Sandaran dan pemulihan bencana aplikasi Redis dalam senario tidak diedarkan

Replikasi tuan-hamba Redis sepatutnya menjadi perkara biasa sekarang. Seni bina replikasi tuan-hamba yang biasa digunakan termasuk dua penyelesaian seni bina berikut.

Replikasi tuan-hamba Redis yang biasa digunakan

Pilihan 1

Redis 备份、容灾及高可用实战的示例分析

Secara amnya, Struktur ini adalah yang paling biasa, dengan satu nod induk dan dua nod hamba. Apabila pelanggan menulis data, ia menulis kepada nod Induk, dan apabila membaca, ia membaca daripada dua Hamba Ini mencapai pengembangan baca dan mengurangkan beban baca pada nod Induk.

Pilihan 2

Redis 备份、容灾及高可用实战的示例分析

Seni bina ini juga mempunyai seorang Tuan dan dua Hamba. Master dan Slave1 menggunakan keepalived untuk melaksanakan migrasi VIP dengan cara yang berbeza. Apabila Pelanggan menyambung kepada Master, ia menyambung melalui VIP. Ini mengelakkan situasi perubahan IP dalam Penyelesaian 1.

Kebaikan dan keburukan replikasi tuan-hamba Redis

Kelebihan

Ia merealisasikan sandaran data induk, setelah menjadi induk gagal , nod hamba boleh dinaikkan pangkat kepada tuan baharu, menggantikan tuan lama dan terus menyediakan perkhidmatan

untuk mencapai pengembangan baca. Seni bina replikasi tuan-hamba biasanya digunakan untuk mencapai pengembangan baca. Master terutamanya melaksanakan fungsi penulisan, dan Slave melaksanakan fungsi membaca

Tidak Mencukupi

Penyelesaian Seni Bina 1

Apabila Master gagal , Klien diputuskan sambungan daripada Master dan tidak boleh melaksanakan fungsi tulis Pada masa yang sama, Slave tidak boleh menyalin daripada Master.

Redis 备份、容灾及高可用实战的示例分析

Pada masa ini, anda perlu melalui operasi berikut (dengan andaian untuk mempromosikan Slave1 kepada Master):

  1. Laksanakan perintah slaveof no one pada Slave1 untuk menaik taraf Slave1 ialah nod Master baharu.

  2. dikonfigurasikan sebagai boleh ditulis pada Slave1 Ini kerana dalam kebanyakan kes, hamba dikonfigurasikan sebagai baca sahaja.

  3. Beritahu klien (iaitu program yang menyambung ke Redis) alamat sambungan nod Master baharu.

  4. Konfigurasikan Slave2 untuk menyalin data daripada Master baharu.

Penyelesaian Senibina 2

Apabila induk gagal, Klien boleh menyambung ke Slave1 untuk operasi data, tetapi Slave1 menjadi satu titik, di sana adalah satu titik kegagalan (single point of failure) yang selalunya perlu dielakkan.

Redis 备份、容灾及高可用实战的示例分析

Selepas itu, anda perlu melalui operasi berikut:

  1. Laksanakan perintah slaveof no one pada Slave1 untuk mempromosikan Slave1 sebagai nod Induk baharu

  2. Konfigurasikan Slave1 supaya boleh ditulis, kerana dalam kebanyakan kes, konfigurasi Slave adalah baca sahaja

  3. Konfigurasikan Slave2 daripada replikasi Data Induk baharu

Perlu diambil perhatian bahawa semua penyelesaian seni bina memerlukan campur tangan manual untuk failover. Keperluan untuk campur tangan manual meningkatkan beban kerja operasi dan penyelenggaraan, dan juga mempunyai kesan yang besar kepada perniagaan. Pada masa ini, anda boleh menggunakan penyelesaian ketersediaan tinggi Redis - Sentinel

4. Pengenalan kepada Redis Sentinel

Redis Sentinel menyediakan penyelesaian ketersediaan tinggi untuk Redis. Dari perspektif praktikal, menggunakan Redis Sentinel boleh mewujudkan persekitaran Redis yang menghalang kegagalan tertentu tanpa campur tangan manusia.

Redis Sentinel menggunakan seni bina teragih dan menjalankan pelbagai proses untuk kerjasama kolaboratif. Menjalankan berbilang proses Sentinel untuk bekerjasama, apabila berbilang Sentinel tidak lagi dapat meneruskan perkhidmatan untuk induk tertentu, pengesanan kesalahan akan dilakukan, yang akan mengurangkan kemungkinan positif palsu.

5. Fungsi Redis Sentinel

Fungsi utama Redis Sentinel dalam penyelesaian ketersediaan tinggi Redis termasuk fungsi berikut:

Pemantauan

Sentinel akan sentiasa menyemak sama ada tuan dan hamba berjalan seperti biasa seperti yang dijangkakan

Pemberitahuan

Melalui API, Sentinel boleh memberitahu pentadbir dan program sistem Instance Redis yang dipantau gagal

Failover automatik

Jika tuan tidak berjalan seperti yang diharapkan, Sentinel boleh memulakan proses failover, dan salah seorang hamba akan Sebagai tuan , hamba lain akan dikonfigurasikan semula untuk menggunakan induk baharu Aplikasi menggunakan perkhidmatan Redis juga akan dimaklumkan untuk menggunakan alamat baharu semasa menyambung.

Pembekal konfigurasi

Sentinel boleh digunakan sebagai sumber pengesahan untuk penemuan perkhidmatan pelanggan: pelanggan menyambung ke Sentinel untuk mendapatkan alamat induk Redis yang bertanggungjawab untuk perkhidmatan tertentu. . Jika kegagalan berlaku, Sentinel akan melaporkan alamat baharu.

6. Seni Bina Redis Sentinel

Redis 备份、容灾及高可用实战的示例分析

7 Kelompok Sentinel memantau dirinya sendiri dan replikasi tuan-hamba Redis. Apabila didapati bahawa nod Induk gagal, langkah-langkah berikut akan diambil:

1) Pilihan raya diadakan antara Sentinel untuk memilih pemimpin, dan pemimpin yang dipilih akan melakukan failover
  • Ketua Sentinel memilih satu daripada nod Hamba sebagai nod induk baharu. Berikut adalah penulisan semula ayat itu: Untuk melaksanakan pemilihan hamba, kaedah pilihan raya berikut perlu dilaksanakan: a) Masa untuk memutuskan sambungan daripada tuan
  • Jika masa untuk memutuskan sambungan daripada tuan melebihi detik ke bawah (selepas milisaat). konfigurasi sentinel ) * 10 saat ditambah dengan masa sentinel menentukan bahawa tuan tidak tersedia apabila sentinel mula melakukan failover, hamba dianggap tidak sesuai untuk dinaikkan pangkat kepada tuan.
b) Keutamaan hamba

Setiap hamba mempunyai keutamaan, yang disimpan dalam fail konfigurasi redis.conf. Jika keutamaan adalah sama, teruskan.

c) Salin kedudukan mengimbangi

Salinan mengimbangi rekod di mana data disalin daripada induk Lebih besar salinan mengimbangi, lebih banyak data diterima daripada induk Jika salinan mengimbangi Begitu juga , teruskan dengan pemilihan

d) Run ID

Pilih Hamba dengan ID Run terkecil sebagai Master baharu

Carta alir adalah seperti berikut:

4) Ketua sentinel menghantar arahan kepada hamba lain untuk menjadikan hamba yang tinggal sebagai hamba nod induk baharu

Redis 备份、容灾及高可用实战的示例分析 5) Ketua Sentinel akan membiarkan tuan yang asal diturunkan kepada hamba Apabila operasi biasa disambung semula, ketua Sentinel akan menghantar arahan untuk menyalin daripada tuan baharu

  • Operasi failover di atas adalah. semuanya disiapkan oleh Sentinel sendiri, tanpa campur tangan manual sama sekali.

Atas ialah kandungan terperinci Contoh analisis sandaran Redis, pemulihan bencana dan amalan ketersediaan tinggi. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam