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  

ਉਪਰੋਕਤ ਸੰਰਚਨਾ ਇੱਕ ਸੈੱਟ ਅੱਪ ਕਰਦੀ ਹੈ Redis Sentinel ਜੋ Redis 5000ms ਦੀ ਇੱਕ ਡਾਊਨ-ਆਫ਼ਟਰ-ਮਿਲੀਸਕਿੰਟ ਥ੍ਰੈਸ਼ਹੋਲਡ, 10000ms ਦੀ ਇੱਕ ਫੇਲਓਵਰ-ਟਾਈਮਆਊਟ, ਅਤੇ 1 ਪੈਰਲਲ ਸਿੰਕ ਦੇ ਨਾਲ ਇੱਕ ਮਾਸਟਰ ਦੀ ਨਿਗਰਾਨੀ ਕਰਦੀ ਹੈ।

 

Redis ਇਹਨਾਂ ਕਦਮਾਂ ਅਤੇ ਉਦਾਹਰਨਾਂ ਦੀ ਪਾਲਣਾ ਕਰਕੇ, ਤੁਸੀਂ ਕਿਸੇ ਐਪਲੀਕੇਸ਼ਨ ਵਿੱਚ ਕੰਮ ਕਰਦੇ ਸਮੇਂ ਗਲਤੀਆਂ ਦਾ ਪ੍ਰਭਾਵਸ਼ਾਲੀ ਢੰਗ ਨਾਲ ਨਿਪਟਾਰਾ ਅਤੇ ਪ੍ਰਬੰਧਨ ਕਰ ਸਕਦੇ ਹੋ NodeJS, ਤੁਹਾਡੀ ਐਪਲੀਕੇਸ਼ਨ ਦੀ ਭਰੋਸੇਯੋਗਤਾ ਅਤੇ ਪ੍ਰਦਰਸ਼ਨ ਨੂੰ ਯਕੀਨੀ ਬਣਾਉਂਦੇ ਹੋਏ।