Redis ialah pangkalan data cache memori sumber terbuka dengan konkurensi tinggi dan prestasi tinggi, dan telah digunakan secara meluas dalam sistem teragih. Antaranya, fungsi transaksi teragih Redis adalah salah satu ciri yang paling popular, yang boleh mencapai penyegerakan data dan pengimbangan beban antara berbilang kelompok Redis. Artikel ini akan memperkenalkan cara Redis melaksanakan pengimbangan beban dan perancangan kapasiti untuk transaksi teragih.
1. Transaksi yang diedarkan oleh Redis
Dalam Redis, urus niaga yang diedarkan merujuk kepada melaksanakan berbilang perintah secara keseluruhannya. Redis menyokong dua protokol transaksi yang diedarkan: MULTI/EXEC dan WATCH/MULTI/EXEC.
Protokol MULTI/EXEC adalah untuk menghantar berbilang arahan kepada pelayan Redis pada satu masa dan pelayan Redis akan melaksanakan arahan ini satu demi satu mengikut tertib. Jika mana-mana arahan gagal dilaksanakan, Redis akan melancarkan semula semua arahan yang dilaksanakan. Kelebihan protokol ini ialah ia mudah dan mudah digunakan, tetapi apabila penyegerakan data atau pengimbangan beban diperlukan antara berbilang kelompok Redis, ia mungkin menyebabkan kesesakan prestasi kerana setiap pelayan Redis perlu melaksanakan arahan yang sama.
Protokol WATCH/MULTI/EXEC ialah protokol transaksi yang diedarkan berdasarkan mekanisme penguncian optimistik Ia merealisasikan membaca dan menulis data dengan mengunci kekunci (jam tangan) untuk menyelaraskan berbilang Redis Tujuan keadaan antara pelayan. Kelebihan protokol ini ialah ia boleh meningkatkan prestasi, tetapi ia memerlukan kawalan ketat ke atas konsistensi data.
2. Pengimbangan beban Redis
Pengimbangan beban Redis merujuk kepada pengagihan data dan permintaan kepada berbilang pelayan Redis, dan meningkatkan prestasi melalui penyegerakan data dan pengedaran respons dan pemprosesan keseluruhan.
Redis menyokong dua jenis pengimbangan beban: pengimbangan beban dinamik dan pengimbangan beban statik.
1. Pengimbangan beban dinamik
Pengimbangan beban dinamik merujuk kepada melaraskan strategi pengimbangan beban secara dinamik mengikut situasi sebenar apabila gugusan Redis sedang berjalan. Pengimbangan beban dinamik boleh dicapai dengan cara berikut:
(1) Redis Sentinel
Redis Sentinel ialah alat pengurusan sistem teragih yang disediakan secara rasmi oleh Redis, yang boleh memantau status berjalan Redis pelayan dan melakukan failover automatik. Dalam Redis Sentinel, berbilang pelayan Redis boleh dikonfigurasikan sebagai pelayan induk dan pelayan hamba Apabila pelayan induk gagal, pelayan hamba boleh bertukar secara automatik ke pelayan induk untuk memastikan ketersediaan tinggi bagi keseluruhan kluster Redis.
(2) Kluster Redis
Kluster Redis ialah seni bina kluster teragih yang boleh menyusun berbilang pelayan Redis ke dalam satu keseluruhan yang logik dan menyediakan alamat perkhidmatan dan nombor port bersatu kepada dunia luar. Dalam Kluster Redis, Redis boleh mengedarkan serpihan data secara automatik kepada berbilang nod perkhidmatan, dan menggunakan pengesanan kerosakan lanjutan dan mekanisme pengagihan semula automatik untuk memastikan kebolehpercayaan dan ketersediaan data.
2. Pengimbangan beban statik
Pengimbangan beban statik bermakna sebelum gugusan Redis berjalan, strategi pengimbangan beban telah ditentukan dan dikonfigurasikan dengan sewajarnya. Pengimbangan beban statik boleh dicapai dengan cara berikut:
(1) Pengimbangan beban DNS
Pengimbangan beban DNS ialah dengan memetakan alamat IP berbilang pelayan Redis kepada nama domain, dan kemudian Edarkan permintaan kepada pelayan Redis ini melalui pelayan DNS. Kaedah pengimbangan beban ini mudah dan mudah digunakan, tetapi ia tidak dapat melakukan pengesanan kesalahan dan failover.
(2) Pengimbangan beban perkakasan
Pengimbangan beban perkakasan mengedar dan mengurus trafik rangkaian dengan menggunakan peralatan pengimbangan beban khusus (seperti F5, CISCO, dll.). Kaedah pengimbangan beban ini adalah stabil dan boleh dipercayai, tetapi memerlukan peralatan perkakasan tambahan dan pelaburan.
3. Perancangan kapasiti Redis
Perancangan kapasiti Redis merujuk kepada keperluan untuk mempertimbangkan faktor seperti volum data, bilangan pelayan Redis, sandaran data dan pemulihan kerosakan semasa mereka bentuk dan melaksanakan gugusan Redis. Ini menentukan sumber perkakasan yang diperlukan dan strategi pelaksanaan.
1. Volum data
Volume data ialah salah satu faktor utama yang mempengaruhi kapasiti gugusan Redis. Apabila merancang kapasiti, adalah perlu untuk menganggarkan kelajuan pertumbuhan data, kelajuan kemas kini data, kelajuan pemadaman data dan faktor lain untuk mereka bentuk struktur storan dan kaedah pertanyaan Redis secara munasabah. Di samping itu, had ingatan Redis dan strategi sandaran data juga perlu dipertimbangkan.
2. Bilangan pelayan Redis
Bilangan pelayan Redis ialah satu lagi faktor utama yang mempengaruhi kapasiti gugusan Redis. Apabila merancang kapasiti, anda perlu mempertimbangkan strategi penyegerakan data dan pengimbangan beban, serta spesifikasi perkakasan dan bilangan pelayan Redis. Di samping itu, strategi toleransi kesalahan dan pelan sandaran data pelayan Redis perlu dipertimbangkan.
3. Sandaran data
Sandaran data ialah salah satu faktor utama untuk memastikan kebolehpercayaan dan ketersediaan data. Apabila merancang kapasiti, anda perlu mempertimbangkan strategi dan penyelesaian sandaran data. Kaedah sandaran data biasa termasuk sandaran penuh, sandaran tambahan dan sandaran luar tapak.
4. Pemulihan kerosakan
Apabila merancang kapasiti, strategi dan rancangan pemulihan kerosakan perlu dipertimbangkan. Kaedah pemulihan kegagalan biasa termasuk failover automatik, pemulihan data dan pemulihan data.
Ringkasan
Sebagai pangkalan data edaran berprestasi tinggi, kebolehpercayaan tinggi, Redis mempunyai kelebihan dan ciri tertentu dalam pemprosesan transaksi teragih, pengimbangan beban dan perancangan kapasiti. Dengan memperkenalkan pengimbangan beban dinamik dan pengimbangan beban statik Redis, dan memperkenalkan strategi perancangan kapasiti Redis, artikel ini berharap dapat memberikan rujukan dan bantuan tertentu untuk reka bentuk dan pelaksanaan kelompok Redis.
Atas ialah kandungan terperinci Redis melaksanakan pengimbangan beban dan perancangan kapasiti transaksi yang diedarkan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!