Redis Node.js में त्रुटियों को संभालना और समस्या निवारण करना

NodeJS किसी एप्लिकेशन के साथ एकीकरण करते समय उसमें त्रुटियों का निवारण और प्रबंधन करना Redis एप्लिकेशन की स्थिरता और दक्षता सुनिश्चित करने के लिए एक आवश्यक प्रक्रिया है।

Redis किसी NodeJS एप्लिकेशन में काम करते समय समस्या निवारण और त्रुटि प्रबंधन कैसे करें, इसके बारे में नीचे कुछ विवरण और उदाहरण दिए गए हैं।

देखना Redis log

Redis महत्वपूर्ण घटनाओं, चेतावनियों और त्रुटियों को रिकॉर्ड करने के लिए लॉग प्रदान करता है। ये लॉग समस्याओं के निवारण के लिए उपयोगी हो सकते हैं Redis । लॉग इन सक्षम करने के लिए Redis, आपको redis.conf कॉन्फ़िगरेशन फ़ाइल को संशोधित करना होगा और उचित लॉगिंग स्तर सेट करना होगा।

फ़ाइल में लॉगिंग सक्षम करने का एक उदाहरण यहां दिया गया है:

# In redis.conf  
logfile /var/log/redis/redis.log  
loglevel verbose  

सुनिश्चित करें कि log फ़ाइल निर्देशिका मौजूद है और Redis प्रक्रिया द्वारा लिखने योग्य है।

उपयोग Redis Monitor

Redis Monitor एक अंतर्निहित कमांड है जो आपको Redis सर्वर पर निष्पादित वास्तविक समय कमांड की निगरानी करने की अनुमति देता है। यह भेजे जा रहे वास्तविक आदेशों को समझने में सहायक है Redis ।

यहां Redis Monitor किसी एप्लिकेशन में "इओरेडिस" लाइब्रेरी के साथ उपयोग करने का एक उदाहरण दिया गया है NodeJS:

const Redis = require('ioredis');  
const redis = new Redis();  
  
redis.monitor((err, monitor) => {  
  console.log('Started monitoring Redis commands');  
  monitor.on('monitor',(time, args, source, database) => {  
    console.log('Command:', args);  
  });  
});  

यह कोड एक मॉनिटर स्थापित करता है Redis जो Redis सर्वर द्वारा प्राप्त प्रत्येक कमांड को वास्तविक समय में प्रिंट करता है।

अतुल्यकालिक त्रुटियों को संभालें

Redis किसी एप्लिकेशन में काम करते समय NodeJS, कई Redis ऑपरेशन एसिंक्रोनस होते हैं, जिसका अर्थ है कि वे callback या का उपयोग करते हैं Promises

एप्लिकेशन क्रैश से बचने के लिए त्रुटियों को ठीक से संभालना महत्वपूर्ण है। यहां त्रुटियों से निपटने का एक उदाहरण दिया गया है callback:

const Redis = require('ioredis');  
const redis = new Redis();  
  
redis.get('key',(err, result) => {  
  if(err) {  
    console.error('Error:', err);  
    return;  
  }  
  console.log('Result:', result);  
});  

और async/await इसके साथ प्रयोग करें Promises:

const Redis = require('ioredis');  
const redis = new Redis();  
  
async function getValue() {  
  try {  
    const result = await redis.get('key');  
    console.log('Result:', result);  
  } catch(err) {  
    console.error('Error:', err);  
  }  
}  
  
getValue();  

Redis कनेक्शन प्रबंधित करें

कनेक्शन प्रबंधित करने के लिए, क्लाइंट लाइब्रेरी Redis द्वारा प्रदान किए गए कनेक्शन पूल का उपयोग करने की अनुशंसा की जाती है । Redis उदाहरण के लिए, "इओरेडिस" के साथ:

const Redis = require('ioredis');  
const redis = new Redis({  
  // connection options here  
});  

क्लाइंट स्वचालित रूप से कनेक्शन प्रबंधित करेगा और उनका कुशलतापूर्वक पुन: उपयोग करेगा।

Redis अनुपलब्ध होने पर मामलों को संभालें

ऐसे मामलों को संभालने के लिए जब Redis अनुपलब्ध हो या धीरे-धीरे प्रतिक्रिया दे, उचित टाइमआउट सेट करने और कनेक्शन त्रुटियों को शालीनता से संभालने पर विचार करें।

const Redis = require('ioredis');  
const redis = new Redis({  
  retryStrategy:(times) => {  
    return Math.min(times * 50, 2000); // Retry with exponential backoff up to 2 seconds  
  },  
});  

उपयोग Redis Sentinel

Redis Sentinel Redis समूहों के लिए उच्च उपलब्धता और निगरानी प्रदान करता है । जब मास्टर नोड अनुपलब्ध हो जाता है तो यह स्वचालित रूप से विफलता को संभालता है।

यहाँ एक उदाहरण विन्यास है:

sentinel monitor mymaster 127.0.0.1 6379 2  
sentinel down-after-milliseconds mymaster 5000  
sentinel failover-timeout my  

उपरोक्त कॉन्फ़िगरेशन एक सेट अप करता है Redis Sentinel जो Redis 5000ms की डाउन-आफ्टर-मिलीसेकंड सीमा, 10000ms के फेलओवर-टाइमआउट और 1 समानांतर सिंक के साथ एक मास्टर की निगरानी करता है।

 

Redis इन चरणों और उदाहरणों का पालन करके, आप अपने एप्लिकेशन की विश्वसनीयता और प्रदर्शन सुनिश्चित करते हुए किसी NodeJS एप्लिकेशन में काम करते समय त्रुटियों का प्रभावी ढंग से निवारण और प्रबंधन कर सकते हैं।