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
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
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.
Pada masa ini, anda perlu melalui operasi berikut (dengan andaian untuk mempromosikan Slave1 kepada Master):
Laksanakan perintah slaveof no one pada Slave1 untuk menaik taraf Slave1 ialah nod Master baharu.
dikonfigurasikan sebagai boleh ditulis pada Slave1 Ini kerana dalam kebanyakan kes, hamba dikonfigurasikan sebagai baca sahaja.
Beritahu klien (iaitu program yang menyambung ke Redis) alamat sambungan nod Master baharu.
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.
Selepas itu, anda perlu melalui operasi berikut:
Laksanakan perintah slaveof no one pada Slave1 untuk mempromosikan Slave1 sebagai nod Induk baharu
Konfigurasikan Slave1 supaya boleh ditulis, kerana dalam kebanyakan kes, konfigurasi Slave adalah baca sahaja
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
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 failover5) 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!