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