Rumah >pangkalan data >Redis >Cara Redis melaksanakan baris gilir tugas yang diedarkan

Cara Redis melaksanakan baris gilir tugas yang diedarkan

王林
王林asal
2023-05-11 08:51:221730semak imbas

Dengan perkembangan Internet, sistem yang diedarkan secara beransur-ansur menjadi salah satu trend dalam pembangunan aplikasi Internet. Dalam sistem teragih, baris gilir tugas ialah komponen yang sangat penting, yang boleh membantu pembangun memperuntukkan tugas secara munasabah dan meningkatkan kecekapan sistem. Sebagai pangkalan data cache berprestasi tinggi, Redis juga digunakan secara meluas dalam pelaksanaan baris gilir tugas kerana ciri-ciri teragihnya yang baik. Dalam artikel ini, kami akan memperkenalkan pelaksanaan Redis sebagai baris gilir tugas yang diedarkan.

1. Pengenalan asas kepada Redis

Redis ialah pangkalan data Nilai Kunci sumber terbuka yang menyokong pelbagai struktur data, termasuk rentetan, senarai, Hash, Set, Set Isih, dsb. Ia mempunyai prestasi yang sangat tinggi dan boleh mengendalikan 100,000 operasi sesaat Ia digunakan secara meluas dalam senario seperti caching, pemesejan masa nyata, kedudukan dan baris gilir tugas.

Ciri Redis yang diedarkan terutamanya ditunjukkan dalam dua aspek berikut:

  1. Penyegerakan tuan-hamba

Redis boleh dilaksanakan melalui tuan-hamba penyegerakan. Sandaran data, pengimbangan beban dan ketersediaan tinggi. Apabila contoh Redis menjadi nod induk, ia akan menghantar arahan replikasi secara aktif kepada kejadian lain dalam rangkaian yang sama dan menyegerakkan data ke nod hamba. Apabila nod induk di luar talian, nod hamba akan dinaik taraf kepada nod induk baharu untuk memastikan operasi normal sistem.

  1. Mod Sentinel

Redis juga boleh mencapai ketersediaan tinggi melalui mod sentinel. Sentinel ialah nod khas dalam gugusan Redis Fungsi utamanya adalah untuk memantau status nod Redis dan melakukan failover apabila keabnormalan berlaku. Apabila nod induk Redis di luar talian, Sentinel akan menemui masalah ini dan memilih nod induk baharu untuk memastikan nod sandaran sistem boleh dinaik taraf kepada nod induk. Kaedah ini boleh mengelakkan satu titik masalah kegagalan gugusan Redis dan meningkatkan ketersediaan sistem.

2. Cara melaksanakan Redis sebagai baris gilir tugas

Redis boleh melaksanakan fungsi baris gilir tugas dengan cara berikut:

  1. Menggunakan struktur data senarai

Struktur data senarai Redis ialah senarai berganda yang boleh menyimpan tatasusunan tertib. Dengan menyimpan tugas dalam senarai Redis, fungsi baris gilir boleh dilaksanakan. Tugasan boleh ditambah pada senarai dengan perintah lpush atau rpush dan dikeluarkan dengan perintah lpop atau rpop. Dalam aplikasi praktikal, anda boleh menetapkan parameter tamat masa untuk memastikan tugas itu dilaksanakan dalam tempoh masa tertentu. Pada masa yang sama, dengan menyampaikan semula tugas, dapat dipastikan bahawa tugas itu boleh dicuba semula selepas pelaksanaan yang gagal, sekali gus meningkatkan kebolehpercayaan tugas.

  1. Gunakan mekanisme terbitkan dan langgan

Mekanisme penerbitan dan langgan Redis boleh merealisasikan pemprosesan mesej tak segerak. Dengan menghantar tugasan antara penerbit dan pelanggan, fungsi baris gilir tugas boleh dilaksanakan. Apabila tugasan baharu ditambahkan pada baris gilir, penerbit akan menerbitkan tugasan ke saluran yang ditentukan. Pelanggan boleh melanggan saluran melalui arahan langgan dan memproses mesej tugas apabila mereka menerimanya. Dalam aplikasi praktikal, anda boleh menetapkan tamat masa mesej untuk memastikan tugasan diproses dalam tempoh masa tertentu. Pada masa yang sama, dengan melepaskan semula tugas, anda boleh memastikan tugas itu boleh dicuba semula selepas pelaksanaan yang gagal, dengan itu meningkatkan kebolehpercayaan tugas.

  1. Menggunakan struktur data Set Isih

Struktur data Set Isih Redis ialah set tertib yang boleh menyimpan elemen dan markahnya. Dengan menggunakan tamat masa tugas sebagai skor, fungsi baris gilir tugas boleh dilaksanakan. Tugasan boleh ditambah ke Set Diisih melalui perintah zadd dan dikeluarkan melalui arahan zrem. Pada masa yang sama, dengan menetapkan skor Set Isih kepada masa semasa, ciri-ciri Set Isih boleh digunakan untuk membersihkan tugas tamat masa.

Apabila menggunakan Redis untuk melaksanakan baris gilir tugas yang diedarkan, anda boleh menggunakan kaedah berikut:

  1. Mod nod tunggal

Apabila volum tugasan kecil , Barisan tugasan boleh dilaksanakan dalam mod satu nod. Seni bina sistem adalah agak mudah, dan baris gilir tugas boleh dilaksanakan pada satu nod Redis, tetapi berbuat demikian boleh menjejaskan prestasi dan ketersediaan sistem.

  1. Mod replikasi induk-hamba

Apabila jumlah tugasan besar, mod replikasi induk-hamba boleh digunakan untuk melaksanakan baris gilir tugas. Seni bina sistem adalah agak kompleks Ia memerlukan baris gilir tugasan untuk dilaksanakan pada nod induk Redis dan tugasan untuk dilaksanakan pada nod hamba pada masa yang sama. Pada masa ini, mekanisme pengimbangan beban nod hamba boleh digunakan untuk merealisasikan pengagihan dan pelaksanaan tugas dan memastikan ketersediaan tinggi baris gilir tugas.

  1. Mod Sentinel

Apabila volum tugasan meningkat lagi, mod sentinel boleh digunakan untuk melaksanakan baris gilir tugas. Pada masa ini, setiap nod Redis boleh melaksanakan tugas. Apabila nod menjadi tidak normal, Sentinel akan secara automatik memilih nod induk baharu dan memastikan operasi normal baris gilir tugas.

3. Ringkasan

Redis mempunyai ciri prestasi tinggi dan ketersediaan tinggi, dan merupakan pilihan ideal untuk melaksanakan baris gilir tugasan. Fungsi baris gilir tugas boleh dilaksanakan dengan mudah melalui struktur data Redis seperti senarai, terbitkan dan langgan, dan Set Diisih. Dalam aplikasi praktikal, penyelesaian yang berbeza seperti nod tunggal, replikasi induk-hamba dan mod sentinel boleh digunakan untuk mencapai operasi yang cekap bagi baris gilir tugasan yang diedarkan berdasarkan jumlah tugasan.

Atas ialah kandungan terperinci Cara Redis melaksanakan baris gilir tugas yang diedarkan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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