Node.js के लिए Redis क्लाइंट: ioredis
Redis एक उच्च-प्रदर्शन वाला इन-मेमोरी डेटा स्टोर है, जिसे अक्सर डेटाबेस, कैश और मैसेज ब्रोकर के रूप में उपयोग किया जाता है। Node.js से Redis के साथ इंटरैक्ट करने के लिए कई लाइब्रेरीज़ हैं, लेकिन सबसे लोकप्रिय और सुविधा संपन्न में से एक ioredis है। यह लाइब्रेरी Redis के साथ काम करने के लिए एक पूर्ण, उच्च-प्रदर्शन और सुविधाजनक API प्रदान करती है, जो क्लस्टरिंग, pub/sub, ट्रांज़ैक्शन और Lua-स्क्रिप्ट सहित सभी आधुनिक क्षमताओं का समर्थन करती है।
इस लेख में, हम ioredis, इसकी स्थापना, मुख्य विशेषताओं पर विस्तार से चर्चा करेंगे और JavaScript (Node.js) में व्यावहारिक कोड उदाहरण प्रस्तुत करेंगे।
स्थापना और कनेक्शन
npm या yarn के माध्यम से ioredis स्थापित करना सरल है:
npm install ioredis# याyarn add ioredisस्थापना के बाद, क्लाइंट का एक इंस्टेंस बनाएं:
const Redis = require('ioredis');const redis = new Redis(); // डिफ़ॉल्ट रूप से localhost:6379
// या स्पष्ट पैरामीटर के साथconst redis = new Redis({ host: 'localhost', port: 6379, password: 'your_password', // यदि पासवर्ड सेट है db: 0});लाइब्रेरी Promise और async/await का समर्थन करती है, जो कोड को साफ और पढ़ने योग्य बनाती है।
डेटा के साथ बुनियादी संचालन
ioredis आपको सभी मानक Redis कमांड निष्पादित करने की अनुमति देता है। आइए स्ट्रिंग्स, लिस्ट्स और हैशेज़ के साथ काम करने के उदाहरण देखें।
स्ट्रिंग्स के साथ काम करना
async function stringExample() { await redis.set('user:1:name', 'अलेक्से'); const name = await redis.get('user:1:name'); console.log(name); // अलेक्से
// समय समाप्ति (TTL) के साथ सेट करना await redis.setex('temp:code', 60, '123456'); // 60 सेकंड तक जीवित रहता है}लिस्ट्स के साथ काम करना
async function listExample() { await redis.lpush('queue:tasks', 'task1', 'task2'); await redis.rpush('queue:tasks', 'task3'); const tasks = await redis.lrange('queue:tasks', 0, -1); console.log(tasks); // ['task2', 'task1', 'task3']}हैशेज़ के साथ काम करना
async function hashExample() { await redis.hset('user:1', { name: 'मारिया', age: 28, city: 'मॉस्को' }); const age = await redis.hget('user:1', 'age'); console.log(age); // 28
const allData = await redis.hgetall('user:1'); console.log(allData); // { name: 'मारिया', age: '28', city: 'मॉस्को' }}Pub/Sub (प्रकाशक-सदस्य)
Redis pub/sub पैटर्न का समर्थन करता है, और ioredis इसके लिए एक सुविधाजनक इंटरफ़ेस प्रदान करता है। महत्वपूर्ण: सब्सक्राइबर को एक अलग कनेक्शन का उपयोग करना चाहिए।
// सब्सक्राइबरconst subscriber = new Redis();subscriber.subscribe('news', 'updates', (err, count) => { console.log(`${count} चैनलों की सदस्यता ली`);});
subscriber.on('message', (channel, message) => { console.log(`${channel} से प्राप्त: ${message}`);});
// प्रकाशक (दूसरी प्रक्रिया में हो सकता है)const publisher = new Redis();publisher.publish('news', 'नमस्ते, दुनिया!');publisher.publish('updates', 'संस्करण 2.0 जारी');Redis क्लस्टर के साथ काम करना
ioredis क्लस्टरिंग का उत्कृष्ट समर्थन करता है। आपको बस क्लस्टर नोड्स की सूची प्रदान करनी होगी:
const cluster = new Redis.Cluster([ { host: 'node1.example.com', port: 6379 }, { host: 'node2.example.com', port: 6379 }, { host: 'node3.example.com', port: 6379 }]);
async function clusterExample() { await cluster.set('key', 'value'); const val = await cluster.get('key'); console.log(val); // value}लाइब्रेरी स्वचालित रूप से नोड्स के बीच कमांड रीडायरेक्शन (MOVED, ASK) को संभालती है और स्लॉट्स का समर्थन करती है।
ट्रांज़ैक्शन और पाइपलाइन
कई कमांड को परमाणु रूप से निष्पादित करने के लिए ट्रांज़ैक्शन (MULTI/EXEC) का उपयोग करें। प्रदर्शन बढ़ाने के लिए पाइपलाइन (pipeline) का उपयोग करें।
ट्रांज़ैक्शन
async function transaction पुस्तकालय में भी
PHP में HTML पार्सिंग: लाइब्रेरी और टूल्स का अवलोकन
Kotlin में HTML पार्सिंग: jsoup, ktor, khtml और अन्य उपकरण
जावा एप्लिकेशन कॉन्फ़िगरेशन: लाइब्रेरी और टूल्स का अवलोकन
Rust में WebSocket: tokio-tungstenite और tungstenite लाइब्रेरीज़