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

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

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

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

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



Redis एक उच्च-प्रदर्शन वाला इन-मेमोरी डेटा स्टोर है, जिसका उपयोग अक्सर कैशिंग, सत्र प्रबंधन, संदेश कतारों और रीयल-टाइम अनुप्रयोगों के लिए किया जाता है। TypeScript (विशेषकर Node.js वातावरण में) में विकास करते समय, आपको Redis के साथ इंटरैक्ट करने के लिए एक विश्वसनीय क्लाइंट की आवश्यकता होगी। आज, दो मुख्य उम्मीदवार redis (Redis की आधिकारिक लाइब्रेरी) और ioredis (एक लोकप्रिय तृतीय-पक्ष विकल्प) हैं। दोनों बॉक्स से बाहर TypeScript का समर्थन करते हैं, लेकिन API, प्रदर्शन और अतिरिक्त सुविधाओं में भिन्न हैं।



1. ioredis लाइब्रेरी



ioredis Node.js के लिए एक पूर्ण-विशेषताओं वाला Redis क्लाइंट है, जो TypeScript में लिखा गया है। इसे इसकी विश्वसनीयता, क्लस्टर, Sentinel और डेटा स्ट्रीम के लिए अंतर्निहित क्षमताओं के समर्थन के कारण समुदाय में डी-फैक्टो मानक माना जाता है।



स्थापना

npm install ioredis# याyarn add ioredis


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

import Redis from 'ioredis';

const redis = new Redis({ host: 'localhost', port: 6379, // password: 'your-password', // यदि आवश्यक हो retryStrategy: (times) => { // पुन: कनेक्शन रणनीति return Math.min(times * 50, 2000); }});

redis.on('connect', () => { console.log('Redis से कनेक्ट हुआ');});

redis.on('error', (err) => { console.error('Redis त्रुटि:', err);});

// async/await का उपयोगasync function demo() { await redis.set('user:1', JSON.stringify({ name: 'इवान', age: 30 })); const user = await redis.get('user:1'); console.log('प्राप्त डेटा:', JSON.parse(user));}

demo();


ioredis की विशेषताएं

  • पूर्ण TypeScript समर्थन — सभी विधियों में सख्त टाइपिंग है, जो IDE को तर्कों और परिणामों के प्रकार सुझाने की अनुमति देती है।
  • क्लस्टर और Sentinel — Redis क्लस्टर मोड के लिए अंतर्निहित समर्थन और विफलताओं पर स्वचालित स्विचओवर।
  • स्ट्रीम प्रोसेसिंग — Redis Streams (XADD, XREAD, XGROUP) के लिए सुविधाजनक इंटरफ़ेस।
  • चैनल (Pub/Sub) — चैनलों की सदस्यता लेना और रीयल-टाइम में संदेश प्राप्त करना आसान।
  • पाइपलाइन और लेन-देन — प्रदर्शन बढ़ाने के लिए कमांड का समूहीकरण।
  • स्वचालित पुन: कनेक्शन — अंतर्निहित पुन: प्रयास रणनीति।


पाइपलाइन के साथ उदाहरण

import Redis from 'ioredis';

const redis = new Redis();

async function pipelineDemo() { const pipeline = redis.pipeline(); pipeline.set('key1', 'value1'); pipeline.set('key2', 'value2'); pipeline.get('key1'); pipeline.get('key2');

const results = await pipeline.exec(); console.log('पाइपलाइन परिणाम:', results); // [ [ null, 'OK' ], [ null, 'OK' ], [ null, 'value1' ], [ null, 'value2' ] ]}

pipelineDemo();


2. आधिकारिक redis लाइब्रेरी



संस्करण 4.x से शुरू होकर, आधिकारिक redis क्लाइंट को TypeScript में पूरी तरह से फिर से लिखा गया था। यह Promise-आधारित आधुनिक API, मॉड्यूलर आर्किटेक्चर और TypeScript के साथ गहन एकीकरण प्रदान करता है।



स्थापना

npm install redis# याyarn add redis


कनेक्शन और उदाहरण

import { createClient } from 'redis';

const client = createClient({ url: 'redis://localhost:6379' // या पासवर्ड के साथ: 'redis://user:password@localhost:6379'});

client.on('error', (err) => console.error('Redis क्लाइंट त्रुटि', err));

async function connectAndUse() { await client.connect(); console.log('कनेक्ट हुआ!');

await client.set('session:123', 'active'); const status = await client.get('session:123'); console.log('सत्र स्थिति:', status); // 'active'

await client.disconnect();}

connectAndUse();

अनुशंसाएँ