Messaging Redis نوڈ جے ایس کے ساتھ مربوط ہونے کی عام ایپلی کیشنز میں سے ایک ہے ۔ Redis لچکدار ڈیٹا ڈھانچہ فراہم کرتا ہے جیسے Pub/Sub(Publish/Subscribe) اور Message Queue ، ایک ایپلی کیشن میں اجزاء کے درمیان مواصلاتی نظام کی تعمیر اور ڈیٹا کے تبادلے کو فعال کرنا۔
Pub/Sub(Publish/Subscribe)
Pub/Sub ایپلیکیشن کے اجزاء کو پیغامات کے اندراج اور نشریات کے ذریعے بات چیت کرنے کی اجازت دیتا ہے۔ ایک جزو ایک پبلشر کے طور پر کام کر سکتا ہے، چینل کو پیغامات بھیج سکتا ہے، اور دوسرے اجزاء اس چینل پر پیغامات سن کر، سبسکرائبرز کے طور پر کام کر سکتے ہیں۔
Pub/Sub اور نوڈ جے ایس کے ساتھ استعمال کرنے کی مثال Redis:
const Redis = require('ioredis');
const subscriber = new Redis();
const publisher = new Redis();
// Subscribe and listen for messages on the 'notifications' channel
subscriber.subscribe('notifications',(err, count) => {
console.log(`Subscribed to ${count} channels.`);
});
// Handle messages when received from the 'notifications' channel
subscriber.on('message',(channel, message) => {
console.log(`Received message from channel '${channel}': ${message}`);
});
// Publish a message to the 'notifications' channel
publisher.publish('notifications', 'New notification!');
Message Queue
Redis Message Queue غیر مطابقت پذیر ملازمتوں کو منظم کرنے اور اس پر کارروائی کرنے کے لیے بطور استعمال کیا جا سکتا ہے ۔ یہ تاخیر کو کم کرنے میں مدد کرتا ہے اور ایپلیکیشن کی توسیع پذیری کو بڑھاتا ہے۔
Message Queue اور نوڈ جے ایس کے ساتھ استعمال کرنے کی مثال Redis:
const Redis = require('ioredis');
const client = new Redis();
// Add a task to the 'tasks' queue
client.rpush('tasks', JSON.stringify({ id: 1, data: 'Task 1' }));
// Process tasks from the 'tasks' queue
function processTask() {
client.lpop('tasks',(err, task) => {
if(task) {
const parsedTask = JSON.parse(task);
console.log('Processing task:', parsedTask);
// Process the task here...
// Continue processing the next tasks
processTask();
}
});
}
// Start processing tasks from the queue
processTask();
نوٹ: یہ نوڈ جے ایس کے ساتھ Redis استعمال کرنے کی صرف بنیادی مثالیں ہیں ۔ Messaging عملی طور پر، نفاذ اور اسکیلنگ کے Messaging نظام زیادہ پیچیدہ ہو سکتے ہیں اور درخواست کی مخصوص ضروریات پر منحصر ہو سکتے ہیں۔ زیادہ پیچیدہ نظاموں Redis میں NodeJS کے ساتھ ضم کرتے وقت سیکیورٹی، ایرر ہینڈلنگ، اور کارکردگی کی اصلاح پر غور کریں ۔ Messaging