Apakah pub/sub di redis 7?
Pub/sub di Redis 7 meningkatkan pub/sub skalabiliti dengan mengedarkan trafik mesej di pelbagai benang. Tradisional Redis Pub/Sub adalah terhad oleh model tunggal yang boleh menjadi kesesakan di bawah beban tinggi. Dengan pub/sub sharded, saluran dibahagikan kepada shard yang diberikan kepada benang I/O tertentu; Setiap thread mengendalikan penghantaran mesej untuk shard yang diberikan, mengurangkan pertengkaran dan peningkatan prestasi. Mata utama termasuk: 1) pemetaan saluran ke-mata melalui hashing; 2) bilangan shard yang boleh dikonfigurasikan; 3) penggunaan ssubscribe untuk langganan sharded; 4) Sharding automatik semasa penerbitan. Ia sesuai untuk aplikasi dengan banyak saluran, seperti sistem sembang masa nyata atau platform IoT. Untuk menggunakannya, gantikan Langgan dengan SSUBScribe, sementara Publish tetap tidak berubah. Pelanggan mestilah secara eksplisit memilih untuk bersuara, dan kedua-dua mod boleh wujud bersama semasa penghijrahan.
Sharded Pub/Sub di Redis 7 adalah ciri baru yang menangani salah satu batasan sistem pub/sub sistem tradisional - skalabilitas. Jika anda menggunakan REDIS untuk pemesejan masa nyata dan mempunyai pelbagai saluran atau corak, terutamanya di bawah beban tinggi, anda mungkin telah memukul masalah prestasi sebelum ini. Pub/sub sharded membantu dengan menyebarkan trafik pub/sub di semua gelung acara yang ada (atau benang), bukannya mengarahkan segala -galanya melalui benang utama.
Mengapa Ia Diperlukan
Redis sentiasa menggunakan model tunggal untuk mengendalikan arahan, yang menjadikan perkara mudah tetapi boleh menjadi kesesakan ketika mengendalikan jumlah besar pub/sub mesej. Dalam versi terdahulu, walaupun Redis disusun dengan diaktifkan I/O, semua operasi pub/sub masih melalui benang utama. Ini bermakna menerbitkan atau menyampaikan mesej kepada banyak pelanggan boleh menghalang operasi lain.
Dengan Redis 7, perubahan ini.
Bagaimana kerja pub/sub sharded?
Idea teras di belakang pub/sub sharded adalah sharding - mengedarkan tanggungjawab penghantaran mesej merentasi pelbagai benang. Inilah cara ia berfungsi:
- Redis membahagikan saluran ke dalam kumpulan logik yang dipanggil "Shards."
- Setiap shard diberikan kepada benang I/O tertentu.
- Apabila pelanggan melanggan saluran, langganan itu didaftarkan dengan shard (dan dengan itu benang) yang bertanggungjawab untuk saluran itu.
- Mesej yang diterbitkan ke saluran diproses dan disampaikan oleh benang yang sama, mengelakkan overhead penyegerakan silang.
Dengan cara ini, Redis boleh skala prestasi pub/sub lebih berkesan kerana bilangan teras CPU meningkat.
Beberapa perkara utama:
- Nama saluran dipetakan ke Shards menggunakan fungsi hashing.
- Bilangan shard boleh dikonfigurasi melalui
redis.conf
(pubsub_shard_streams_per_node
). - Pelanggan hanya menerima mesej dari saluran yang mereka telah dilanggar-langganan -ada perintah yang berasingan untuk itu:
SSUBSCRIBE
.
Bilakah anda harus menggunakannya?
Anda harus mempertimbangkan menggunakan pub/sub sharded ketika:
- Aplikasi anda menggunakan sejumlah besar saluran.
- Anda mengalami kesesakan prestasi kerana penggunaan pub/sub.
- Anda mahu skala redis secara mendatar tanpa menambah lebih banyak contoh hanya untuk pengedaran mesej.
Ia amat berguna dalam aplikasi seperti:
- Sistem sembang masa nyata dengan banyak bilik atau topik.
- Perkhidmatan Pemberitahuan Kemas kini penyiaran kepada banyak pengguna.
- Platform IoT di mana setiap peranti menerbitkan kemas kini status ke salurannya sendiri.
Jika kes penggunaan anda hanya melibatkan beberapa saluran dengan banyak pelanggan, pub/sub standard mungkin masih baik. Tetapi sebaik sahaja anda mula mengukur bilangan saluran atau memerlukan latensi yang lebih rendah setiap mesej, sharding menjadi lebih baik.
Cara Menggunakan Pub/Sub Sharded
Menggunakan pub / sub sharded adalah mudah, tetapi berbeza dari aliran SUBSCRIBE
/ PUBLISH
klasik. Inilah yang perlu anda lakukan:
- Untuk melanggan saluran dengan cara yang sharded, gunakan
SSUBSCRIBE
dan bukannyaSUBSCRIBE
. - Untuk menerbitkan ke saluran sharded, Gunakan
PUBLISH
- Sharding ditangani secara automatik berdasarkan nama saluran. - Untuk berhenti berlangganan, gunakan
SUNSUBSCRIBE
.
Contoh:
# Langgan Saluran Sharded client1> sSubscribe myChannel # Menerbitkan mesej - dikendalikan oleh utas yang betul pelanggan2> menerbitkan myChannel "Hello Sharded World"
Perlu diingat:
- Pelanggan mestilah menggunakan
SSUBSCRIBE
untuk mengambil kesempatan daripada sharding. -
SUBSCRIBE
klasik danSSUBSCRIBE
tidak boleh dicampur dalam sambungan yang sama. - Alat atau pelanggan yang tidak dikemas kini untuk Redis 7 tidak akan menggunakan pub/sub sharded kecuali diubahsuai.
Juga, kerana Redis 7 menyokong kedua -dua mod, anda secara beransur -ansur boleh memindahkan bahagian aplikasi anda untuk menggunakan langganan sharded sambil mengekalkan orang lain pada model tradisional.
Pemikiran terakhir
Pub/sub di Redis 7 membawa peningkatan skalabiliti yang sangat diperlukan kepada keupayaan pemesejan masa nyata Redis. Dengan menyerahkan saluran ke benang yang berbeza, Redis boleh mengendalikan output yang lebih tinggi tanpa mengorbankan kesederhanaan atau kebolehpercayaan.
Jika anda bekerja dengan Redis pada skala, terutamanya dalam persekitaran pub/sub-berat, ia bernilai menaik taraf dan mencuba ciri ini.
Itu pada dasarnya - tidak terlalu rumit, tetapi pasti satu langkah besar ke hadapan untuk Redis sebagai platform pemesejan.
Atas ialah kandungan terperinci Apakah pub/sub di redis 7?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Shardedpub/subinredis7improvespub/subscalabilitybydistributingmessagetrafficacrossmultersmulthreads.traditionalredispub/subwaslimitedbyasingle-threadelthatcouldbecomeabottleneckunderhighload.WithshardeShighload

Redisislimitedbymemoryconstraintsanddatapersistence, whileTraditionaldatabasstruglyglyglyglyWithperformanceinreal-timescenarios.1)

Urus niaga yang dilepaskan

Toswitchdatabasesinredis, usetheselectcommandfollowedbythenumericindex.redissupportsmultiplelogicaldatabases (default16), andeachclientConnectionMaintainSitSownSownSectedDatabase.1.useselectindex (E.G., select

Bagaimana untuk melintasi Rediskey dengan selamat dalam persekitaran pengeluaran? Gunakan arahan imbasan. Imbas adalah perintah berulang kursor Redis, yang melintasi kunci secara tambahan untuk mengelakkan menyekat benang utama. 1. Panggil gelung sehingga kursor adalah 0; 2. Tetapkan parameter kiraan yang munasabah, lalai 10, dan jumlah data besar dapat ditingkatkan dengan sewajarnya; 3. Penapis kekunci mod spesifik dalam kombinasi dengan perlawanan; 4. Perhatikan kemungkinan pulangan kunci yang mungkin, ketidakupayaan untuk memastikan konsistensi, overhead prestasi dan isu -isu lain; 5. boleh dijalankan semasa tempoh luar atau diproses secara tidak segerak. Sebagai contoh: scan0matchuser:*count100.

Untuk mengkonfigurasi dasar penjimatan snapshot RDB untuk Redis, gunakan arahan simpan di redis.conf untuk menentukan keadaan pencetus. 1. Formatnya adalah simpan. Sebagai contoh, Save9001 bermaksud bahawa jika sekurang -kurangnya 1 kunci diubahsuai setiap 900 saat, ia akan disimpan; 2. Pilih nilai yang sesuai mengikut keperluan aplikasi. Aplikasi trafik tinggi boleh menetapkan selang yang lebih pendek seperti SAVE101, dan trafik rendah boleh dilanjutkan seperti SAVE3001; 3. Jika gambar automatik tidak diperlukan, RDB boleh dilumpuhkan melalui SAVE ""; 4. Selepas pengubahsuaian, mulakan semula redis dan memantau log dan beban sistem untuk memastikan konfigurasi berkuatkuasa dan tidak menjejaskan prestasi.

Untuk memastikan keselamatan Redis, anda perlu mengkonfigurasi dari pelbagai aspek: 1. Mengatasi sumber akses, mengubah suai BIND ke IPS tertentu atau menggabungkan tetapan firewall; 2. Dayakan pengesahan kata laluan, tetapkan kata laluan yang kuat melalui keperluan dan uruskan dengan betul; 3. 4. Membolehkan komunikasi yang disulitkan TLS, sesuai untuk senario keperluan keselamatan tinggi; 5. Secara kerap mengemas kini versi dan memantau log untuk mengesan keabnormalan dan menetapkan kelemahan tepat pada masanya. Langkah -langkah ini bersama -sama membina garis keselamatan contoh Redis.

Replikasi master-hamba Redis mencapai konsistensi data melalui penyegerakan penuh dan penyegerakan tambahan. Semasa sambungan pertama, nod hamba menghantar perintah psync, nod induk menghasilkan fail RDB dan menghantarnya, dan kemudian menghantar perintah tulis dalam cache untuk menyelesaikan permulaan; Seterusnya, penyegerakan tambahan dilakukan dengan menyalin penampan backlog untuk mengurangkan penggunaan sumber. Kegunaan umum termasuk pemisahan baca dan tulis, penyediaan failover dan analisis sandaran data. Nota termasuk: Memastikan kestabilan rangkaian, dengan munasabah mengkonfigurasi parameter tamat, membolehkan pilihan min-hamba-to-menulis mengikut keperluan, dan menggabungkan sentinel atau cluster untuk mencapai ketersediaan yang tinggi.
