అప్లికేషన్ యొక్క స్థిరత్వం మరియు సామర్థ్యాన్ని నిర్ధారించడానికి ఒక 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 మీ అప్లికేషన్ యొక్క విశ్వసనీయత మరియు పనితీరును నిర్ధారించవచ్చు.