রেডিস (Redis)-এ Publish/Subscribe (Pub/Sub) মডেল একটি শক্তিশালী মেসেজিং মেকানিজম যা মেসেজ পাঠানো এবং গ্রহণ করার জন্য ব্যবহৃত হয়। এই মডেলটি মূলত দুইটি পক্ষের মধ্যে যোগাযোগ স্থাপন করে: Publisher এবং Subscriber। Publisher মেসেজ পাঠায় এবং Subscriber সেই মেসেজ গ্রহণ করে।
রেডিসের Pub/Sub সিস্টেম ব্যবহার করে আপনি রিয়েল-টাইম অ্যাপ্লিকেশন যেমন চ্যাট সিস্টেম, লাইভ আপডেট, মেসেজিং সার্ভিস এবং অনেক অন্যান্য ক্ষেত্রে মেসেজ ব্রোকার হিসেবে কাজ করতে পারেন।
Publish/Subscribe (Pub/Sub) কমান্ডের ব্যবহার
রেডিস Pub/Sub মডেলটি তিনটি মূল কমান্ডের উপর ভিত্তি করে কাজ করে:
- PUBLISH: মেসেজ পাঠানো।
- SUBSCRIBE: চ্যানেল সাবস্ক্রাইব করা।
- UNSUBSCRIBE: চ্যানেল সাবস্ক্রাইব বন্ধ করা।
১. PUBLISH কমান্ড
PUBLISH কমান্ড ব্যবহার করে একটি চ্যানেলে মেসেজ পাঠানো হয়। এটি Publisher হিসেবে কাজ করে।
সিনট্যাক্স:
PUBLISH <channel> <message>
<channel>: চ্যানেলের নাম (যেখানে মেসেজ পাঠানো হবে)।<message>: পাঠানো মেসেজ।
উদাহরণ:
PUBLISH news "Breaking News: Redis now supports Pub/Sub!"
এটি news চ্যানেলে "Breaking News: Redis now supports Pub/Sub!" মেসেজটি পাঠাবে।
২. SUBSCRIBE কমান্ড
SUBSCRIBE কমান্ড ব্যবহার করে একটি চ্যানেল সাবস্ক্রাইব করা হয়। Subscriber এই চ্যানেল থেকে পাঠানো মেসেজ গ্রহণ করবে।
সিনট্যাক্স:
SUBSCRIBE <channel>
<channel>: চ্যানেলের নাম যা আপনি সাবস্ক্রাইব করতে চান।
উদাহরণ:
SUBSCRIBE news
এটি news চ্যানেলটি সাবস্ক্রাইব করবে এবং সেই চ্যানেলে কোন মেসেজ পাঠানো হলে তা শোনাবে।
ব্যাখ্যা: যদি আপনি উপরের কমান্ড রান করেন, তবে আপনি মেসেজ পাবেন, যেমন:
+news
"Breaking News: Redis now supports Pub/Sub!"
এখানে, +news চ্যানেলটির নাম এবং "Breaking News: Redis now supports Pub/Sub!" মেসেজটি রিটার্ন হবে।
৩. UNSUBSCRIBE কমান্ড
UNSUBSCRIBE কমান্ড ব্যবহার করে একটি চ্যানেল থেকে সাবস্ক্রিপশন বন্ধ করা যায়।
সিনট্যাক্স:
UNSUBSCRIBE <channel>
<channel>: যে চ্যানেল থেকে আপনি সাবস্ক্রাইব বন্ধ করতে চান।
উদাহরণ:
UNSUBSCRIBE news
এটি news চ্যানেল থেকে সাবস্ক্রাইব বন্ধ করবে।
৪. PSUBSCRIBE কমান্ড (Pattern-based Subscribe)
PSUBSCRIBE কমান্ড ব্যবহার করে আপনি Pattern Matching এর মাধ্যমে একাধিক চ্যানেল সাবস্ক্রাইব করতে পারেন। এটি চ্যানেলের নামের প্যাটার্নে মিলে এমন সব চ্যানেলে সাবস্ক্রাইব করবে।
সিনট্যাক্স:
PSUBSCRIBE <pattern>
<pattern>: চ্যানেল নামের প্যাটার্ন।
উদাহরণ:
PSUBSCRIBE news*
এটি news, news.sports, news.weather ইত্যাদি সব চ্যানেলগুলোকে সাবস্ক্রাইব করবে যেগুলো news দিয়ে শুরু হয়।
৫. PUNSUBSCRIBE কমান্ড
PUNSUBSCRIBE কমান্ড ব্যবহার করে আপনি Pattern-based সাবস্ক্রিপশন বন্ধ করতে পারেন।
সিনট্যাক্স:
PUNSUBSCRIBE <pattern>
উদাহরণ:
PUNSUBSCRIBE news*
এটি news* প্যাটার্নের সব চ্যানেল থেকে সাবস্ক্রিপশন বন্ধ করবে।
Pub/Sub Workflow
Publisher: মেসেজ পাঠাবে, যেমন:
PUBLISH sports "Breaking Sports News!"Subscriber: মেসেজ শোনাবে, যেমন:
SUBSCRIBE sportsএখন, যতবার
sportsচ্যানেলে কোনো মেসেজ পাঠানো হবে, Subscriber তা পাবেন।Unsubscribe: সাবস্ক্রিপশন বন্ধ করতে:
UNSUBSCRIBE sports
Pub/Sub এর ব্যবহার ক্ষেত্র
- চ্যাট সিস্টেম: একাধিক ব্যবহারকারী একে অপরকে রিয়েল-টাইম মেসেজ পাঠাতে পারে।
- লাইভ আপডেট: ওয়েবসাইটে লাইভ স্কোর, শেয়ার মূল্য, বা সংবাদ হালনাগাদ প্রদর্শন।
- নোটিফিকেশন সিস্টেম: ব্যবহারকারীকে বিভিন্ন ইভেন্ট বা পরিবর্তন সম্পর্কে অবহিত করা।
- ডিস্ট্রিবিউটেড সিস্টেম: একাধিক সার্ভার বা ক্লায়েন্টের মধ্যে ডেটা ভাগ করা এবং সিঙ্ক্রোনাইজ করা।
সারাংশ
- Publish/Subscribe (Pub/Sub) মডেল একটি মেসেজিং সিস্টেম, যেখানে Publisher মেসেজ পাঠায় এবং Subscriber সেই মেসেজ গ্রহণ করে।
- রেডিসের Pub/Sub সিস্টেমে প্রধান কমান্ডগুলো হল: PUBLISH, SUBSCRIBE, UNSUBSCRIBE, PSUBSCRIBE, এবং PUNSUBSCRIBE।
- এটি চ্যাট সিস্টেম, লাইভ আপডেট, নোটিফিকেশন সিস্টেম এবং ডিস্ট্রিবিউটেড সিস্টেমের মতো বিভিন্ন রিয়েল-টাইম অ্যাপ্লিকেশন তৈরিতে ব্যবহৃত হয়।
Read more