Langganan Padanan Corak
Gunakan `PSUBSCRIBE` untuk melanggan berbilang saluran berdasarkan corak, sekali gus meningkatkan fleksibiliti.
Langganan Padanan Corak ialah pelajaran Pengcachingan & Pemesejan Redis (Pub/Sub, Streams) percuma di CoddyKit. Ini ialah pelajaran 1 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Pengcachingan & Pemesejan Redis (Pub/Sub, Streams), dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Pengcachingan & Pemesejan Redis (Pub/Sub, Streams) merangkumi sejumlah 4 pelajaran.
Langganan Fleksibel dengan Corak
Selamat datang kepada ciri berkuasa Penerbitan/Langganan Redis: Langganan Padanan Corak. Daripada melanggan satu nama saluran yang tepat, anda boleh melanggan berbilang saluran menggunakan corak yang fleksibel.
Hal ini membolehkan aplikasi anda mendengar julat mesej berkaitan yang lebih luas dengan satu langganan, lalu menjadikan pengendalian mesej lebih dinamik.
Mengapa Menggunakan Padanan Corak?
Bayangkan anda mempunyai banyak perkhidmatan, setiap satunya menerbitkan peristiwa ke saluran seperti service.auth.login, service.orders.created atau service.inventory.updated.
- Pengelogan Berpusat: Satu perkhidmatan pengelogan boleh melanggan
service.*untuk menangkap semua peristiwa. - Pengendalian Peristiwa Dinamik: Bertindak balas dengan mudah terhadap jenis peristiwa baharu tanpa mengubah kod langganan.
- Perkhidmatan Mikro: Pisahkan perkhidmatan dengan lebih jauh dengan membolehkan perkhidmatan menerbitkan mesej ke sub-saluran tertentu dalam sesuatu corak.
PSUBSCRIBE dalam Redis CLI
Perintah untuk padanan corak ialah PSUBSCRIBE. Mari lihat cara perintah ini berfungsi dalam Redis CLI.
Mula-mula, buka klien Redis CLI dan jalankan:
PSUBSCRIBE log.*Kad Liar Asterisk (*)
Kad liar * (asterisk) digunakan untuk memadankan sebarang jujukan aksara (termasuk jujukan kosong) dalam satu bahagian nama saluran.
Contohnya, log.* akan memadankan log.app dan log.system, tetapi bukan log.web.server kerana * hanya memadankan sehingga . (titik) yang seterusnya.
Jika anda kemudian menerbitkan mesej:
PUBLISH log.app "User logged in"Kad Liar Tanda Tanya (?)
Kad liar ? (tanda tanya) memadankan tepat satu aksara pada kedudukan tertentu.
Hal ini berguna apabila anda menjangkakan bilangan aksara yang tetap, seperti ID atau kod status tertentu.
Cuba corak ini dalam CLI anda:
PSUBSCRIBE device.temp.??Menggabungkan Kad Liar untuk Kuasa Lebih Tinggi
Anda boleh menggabungkan * dan ? untuk kawalan yang lebih terperinci terhadap langganan. Hal ini membolehkan padanan corak yang sangat fleksibel dan khusus.
Pertimbangkan corak seperti chat.room.*.user.???. Corak ini akan memadankan saluran seperti chat.room.general.user.001 atau chat.room.private.user.abc, tetapi bukan chat.room.main.user.1 (terlalu sedikit aksara untuk ???).
Jika mesej diterbitkan ke chat.room.general.user.007, mesej itu akan diterima oleh corak di atas.
Contoh `psubscribe` Python
Mari lihat cara melaksanakan langganan corak menggunakan pustaka klien Python (redis-py). Pelanggan ini akan mendengar sebarang mesej pada saluran yang sepadan dengan events.*.
Jalankan kod ini dahulu, kemudian penerbit dalam babak seterusnya:
import redis
import time
r = redis.Redis(decode_responses=True)
pubsub = r.pubsub()
pubsub.psubscribe('events.*')
print("Subscribed to 'events.*'. Listening for 5 seconds...")
start_time = time.time()
for message in pubsub.listen():
if message['type'] == 'pmessage':
print(f"Pattern: {message['pattern']}")
print(f"Channel: {message['channel']}")
print(f"Data: {message['data']}")
if time.time() - start_time > 5: # Listen for 5 seconds
pubsub.punsubscribe('events.*')
break
time.sleep(0.01)
print("Subscriber stopped.")Interaksi dengan Penerbit Python
Sekarang, jalankan penerbit Python ini. Mesej yang dihantarnya akan ditangkap oleh pelanggan corak yang baru anda jalankan, sekali gus menunjukkan kehebatan padanan corak.
import redis
import time
r = redis.Redis(decode_responses=True)
print("Publishing messages...")
r.publish('events.user.signup', 'New user: Alice')
time.sleep(0.5)
r.publish('events.product.view', 'Product ID: 12345')
time.sleep(0.5)
r.publish('events.order.placed', 'Order ID: 98765')
time.sleep(0.5)
r.publish('metrics.cpu', 'CPU usage: 85%') # This won't match 'events.*'
print("Messages published.")Kes Penggunaan Dunia Sebenar
Langganan berasaskan padanan corak amat serba guna untuk membina aplikasi masa nyata:
- Pemantauan & Analitis: Kumpulkan data daripada pelbagai perkhidmatan (contohnya,
metrics.cpu.*,metrics.memory.*). - Pemberitahuan: Hantar amaran untuk pelbagai jenis peristiwa (contohnya,
alert.high_priority.*). - Sistem Berbilang Penyewa: Asingkan mesej untuk penyewa yang berbeza (contohnya,
tenant.123.events.*). - Penghalaan Dinamik: Halakan mesej kepada pengendali yang berbeza berdasarkan corak salurannya.
Uji Kemahiran Corak Anda
Klien menggunakan PSUBSCRIBE dengan corak device.*.status.?. Antara nama saluran yang diterbitkan berikut, yang manakah akan menerima mesej daripadanya?
Ringkasan: Penerbitan/Langganan Dinamik
Anda telah mempelajari cara PSUBSCRIBE Redis membolehkan penghalaan mesej yang amat fleksibel dan dinamik dalam aplikasi anda. Dengan menggunakan aksara wakil * dan ?, anda boleh mendengar kategori peristiwa yang luas atau subsaluran yang sangat khusus.
Keupayaan ini penting untuk membina sistem masa nyata yang boleh diskalakan dan tidak bergantung erat antara satu sama lain, sekali gus membolehkan seni bina dipacu peristiwa yang berkuasa.
Pelajari Pengcachingan & Pemesejan Redis (Pub/Sub, Streams) dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 12
- Pelajaran
- 48
Soalan Lazim
Adakah pelajaran “Langganan Padanan Corak” percuma?
Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Pengcachingan & Pemesejan Redis (Pub/Sub, Streams), termasuk “Langganan Padanan Corak”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Pengcachingan & Pemesejan Redis (Pub/Sub, Streams) merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Langganan Padanan Corak”?
Gunakan `PSUBSCRIBE` untuk melanggan berbilang saluran berdasarkan corak, sekali gus meningkatkan fleksibiliti. Anda berlatih Pengcachingan & Pemesejan Redis (Pub/Sub, Streams) menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan Pengcachingan & Pemesejan Redis (Pub/Sub, Streams)?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Pengcachingan & Pemesejan Redis (Pub/Sub, Streams) di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 1 daripada 4.
Berapa lamakah pelajaran “Langganan Padanan Corak” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran Pengcachingan & Pemesejan Redis (Pub/Sub, Streams) ini?
Ya. Setiap pelajaran Pengcachingan & Pemesejan Redis (Pub/Sub, Streams) menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Langganan Padanan Corak
- Mereka Bentuk Sembang Masa Nyata
- Seni Bina Dipacu Peristiwa
- Menjejaki Kehadiran dan Status Dalam Talian