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