TypeScript के लिए Redis क्लाइंट: ioredis और redis (node-redis)

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

TypeScript के लिए Redis क्लाइंट: ioredis और redis (node-redis)

आधुनिक वेब एप्लिकेशन और माइक्रोसर्विसेज की दुनिया में, Redis सबसे लोकप्रिय इन-मेमोरी डेटा स्टोर में से एक है। इसका उपयोग कैशिंग, सत्र प्रबंधन, टास्क क्यू, Pub/Sub और बहुत कुछ के लिए किया जाता है। यदि आप TypeScript में डेवलपमेंट कर रहे हैं, तो आपको Redis के साथ इंटरैक्ट करने के लिए एक विश्वसनीय क्लाइंट की आवश्यकता होगी। इस लेख में, हम दो मुख्य विकल्पों पर चर्चा करेंगे: ioredis और redis (जिसे node-redis भी कहा जाता है)। दोनों लाइब्रेरीज़ में TypeScript के लिए उत्कृष्ट सपोर्ट है, सक्रिय रूप से मेंटेन की जाती हैं, और कई सुविधाएं प्रदान करती हैं।

TypeScript के लिए Redis क्लाइंट क्यों ज़रूरी है?

TypeScript JavaScript में स्टैटिक टाइपिंग जोड़ता है, जिससे कोड अधिक अनुमानित हो जाता है और डेवलपमेंट के दौरान त्रुटियां कम होती हैं। TypeScript के लिए Redis क्लाइंट आपको ये सुविधाएं देता है:

  • पूर्ण टाइप सपोर्ट के साथ Redis कमांड का उपयोग करना।
  • IDE में ऑटो-कम्प्लीशन (IntelliSense) का लाभ उठाना।
  • आधुनिक फ्रेमवर्क (NestJS, Express, Koa) के साथ आसान एकीकरण।
  • एरर हैंडलिंग और रीकनेक्शन को सरल बनाना।

ioredis लाइब्रेरी

ioredis एक पूर्ण-विशेषताओं वाला Redis क्लाइंट है, जो लंबे समय से Node.js इकोसिस्टम में डी-फैक्टो स्टैंडर्ड रहा है। यह क्लस्टरिंग, Pub/Sub, पाइपलाइनिंग, ट्रांजेक्शन (MULTI/EXEC), ऑटोमैटिक रीकनेक्शन और बहुत कुछ सपोर्ट करता है। ioredis TypeScript में लिखा गया है और बॉक्स से बाहर टाइप्स प्रदान करता है।

स्थापना (Installation)

npm install ioredis
npm install @types/ioredis # यदि आप TypeScript < 4.0 का उपयोग कर रहे हैं

कनेक्शन और बुनियादी ऑपरेशन का उदाहरण

import Redis from 'ioredis';

// Redis से कनेक्शन बनाएं (डिफ़ॉल्ट रूप से localhost:6379)
const redis = new Redis();

// डेमो के लिए एसिंक्रोनस फंक्शन
async function demo() {
  try {
    // वैल्यू सेट करना
    await redis.set('user:1:name', 'अन्ना');
    await redis.set('user:1:age', 30);

    // वैल्यू प्राप्त करना
    const name = await redis.get('user:1:name');
    console.log('उपयोगकर्ता का नाम:', name);

    // हैश के साथ काम करना
    await redis.hset('user:2', 'name', 'राज', 'age', 25);
    const user2 = await redis.hgetall('user:2');
    console.log('उपयोगकर्ता 2:', user2);

    // इंक्रीमेंट
    const views = await redis.incr('page:home:views');
    console.log('पेज व्यू:', views);

    // समय सीमा (TTL) के साथ सेट करना
    await redis.setex('temp:code', 60, '123456');
    const ttl = await redis.ttl('temp:code');
    console.log('की की शेष आयु:', ttl, 'सेकंड');

  } catch (error) {
    console.error('Redis त्रुटि:', error);
  } finally {
    // कनेक्शन बंद करें
    redis.disconnect();
  }
}

demo();

क्लस्टर और Pub/Sub सपोर्ट

ioredis Redis क्लस्टर के साथ शानदार काम करता है। इसके लिए Cluster क्लास का उपयोग किया जाता है:

import Redis from 'ioredis';

const cluster = new Redis.Cluster([
  { host: '127.0.0.1', port: 7000 },
  { host: '127.0.0.1', port: 7001 },
  { host: '127.0.0.1', port: 7002 }
]);

await cluster.set('foo', 'bar');
const value = await cluster.get('foo');
console.log(value); // 'bar'

Pub/Sub के लिए एक अलग कनेक्शन का उपयोग किया जाता है, क्योंकि सब्सक्राइबर सामान्य कमांड नहीं चला सकता:

import Redis from 'ioredis';

const subscriber = new Redis();
const publisher = new Redis();

subscriber.subscribe('news', (err, count) => {
  console.log(`${count} चैनल(ों) की सदस्यता ली`);
});

subscriber.on('message', (channel, message) => {
  console.log(`चैनल ${channel} से संदेश प्राप्त: ${message}`);
});

// संदेश प्रकाशित करना
publisher.publish('news', 'TypeScript से नमस्ते!');

redis (node-redis) लाइब्रेरी

redis (npm पर redis पैकेज) Redis का आधिकारिक क्लाइंट है। संस्करण 4.0 से, इसे पूरी तरह से Ty

अनुशंसाएँ