📩 پیامرسانی ساده در NET. با Redis Pub/Sub
ردیس یک انتخاب محبوب برای کش کردن دادهها است، اما قابلیتهای آن بسیار فراتر از این است. یکی از ویژگیهای کمتر شناخته شده آن، پشتیبانی از Pub/Sub است. کانالهای Redis یک رویکرد جذاب برای پیادهسازی پیامرسانی Real-time در برنامههای NET. شما ارائه میدهند. با این حال، همانطور که به زودی خواهید دید، کانالها دارای نقاط ضعفی نیز هستند. 🧐
💡 در این پست بررسی خواهیم کرد:
• اصول اولیه کانالهای Redis.
• موارد استفاده عملی برای کانالها.
• پیادهسازی یک مثال Pub/Sub در NET.
• ابطال کش (Cache Invalidation) در سیستمهای توزیع شده.
بیایید وارد جزئیات شویم! 👇
🌐 کانالهای ردیس (Redis Channels)
Redis channels
کانالهای ارتباطی نامگذاری شدهای هستند که الگوی پیامرسانی Publish/Subscribe را پیادهسازی میکنند. 🗣
هر کانال با یک نام منحصر به فرد (مانند notifications یا updates) شناسایی میشود. کانالها تحویل پیام از Publishers (ناشران) به Subscribers (مشترکین) را تسهیل میکنند.
Publishers
از دستور PUBLISH برای ارسال پیام به یک کانال خاص استفاده میکنند.
Subscribers
از دستور SUBSCRIBE برای ثبت علاقه به دریافت پیام از یک کانال استفاده میکنند.
🔄 مدل Topic-Based
کانالهای Redis از یک مدل Publish-Subscribe مبتنی بر Topic (موضوع) پیروی میکنند. چندین Publisher میتوانند به یک کانال پیام ارسال کنند و چندین Subscriber میتوانند پیامها را از آن کانال دریافت کنند.
⚠️ محدودیت کلیدی: عدم ذخیره پیام
با این حال، توجه به این نکته بسیار حیاتی است که کانالهای Redis پیامها را ذخیره نمیکنند. ❌ اگر هنگام انتشار یک پیام، هیچ مشترکی برای یک کانال وجود نداشته باشد، آن پیام بلافاصله دور ریخته میشود.
کانالهای Redis دارای معناشناسی "حداکثر یک بار تحویل" (at-most-once delivery) هستند.