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 यहाँ एउटा अनुप्रयोगमा "ioredis" पुस्तकालय प्रयोग गर्ने एउटा उदाहरण छ 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 उदाहरण को लागी, "ioredis" संग:

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  

माथिको कन्फिगरेसनले 5000ms को डाउन-अफ्टर-मिलिसकेन्ड थ्रेसहोल्ड, 10000ms को फेलओभर-टाइमआउट, र 1 समानान्तर सिङ्कको साथ मास्टरलाई Redis Sentinel निगरानी गर्ने सेट अप गर्दछ। Redis

 

यी चरणहरू र उदाहरणहरू पछ्याएर, तपाइँले तपाइँको एप्लिकेसनको विश्वसनीयता र कार्यसम्पादन सुनिश्चित गर्दै, एप्लिकेसनमा Redis काम गर्दा त्रुटिहरूलाई प्रभावकारी रूपमा समस्या निवारण र ह्यान्डल गर्न सक्नुहुन्छ । NodeJS