Klaidų tvarkymas ir trikčių šalinimas Redis Node.js

Programos trikčių šalinimas ir klaidų apdorojimas NodeJS integruojant su Redis yra esminis procesas, užtikrinantis programos stabilumą ir efektyvumą.

Toliau pateikiama keletas išsamios informacijos ir pavyzdžių, kaip atlikti trikčių diagnostiką ir tvarkyti klaidas dirbant su Redis programa NodeJS.

Žiūrėti Redis log

Redis pateikia žurnalus svarbiems įvykiams, įspėjimams ir klaidoms įrašyti. Šie žurnalai gali būti naudingi sprendžiant problemas, susijusias su Redis. Norėdami įjungti prisijungimą Redis, turite pakeisti redis.conf konfigūracijos failą ir nustatyti atitinkamą registravimo lygį.

Štai pavyzdys, kaip įjungti failą:

# In redis.conf  
logfile /var/log/redis/redis.log  
loglevel verbose  

Įsitikinkite, kad log failų katalogas yra ir kad procesas gali įrašyti Redis.

Naudokite Redis Monitor

Redis Monitor yra integruota komanda, leidžianti stebėti Redis serverio vykdomas komandas realiuoju laiku. Tai naudinga norint suprasti faktines komandas, siunčiamas į Redis.

Štai pavyzdys, kaip naudoti Redis Monitor su „ioredis“ biblioteka programoje 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);  
  });  
});  

Šis kodas nustato Redis monitorių, kuris realiuoju laiku spausdina kiekvieną Redis serverio gautą komandą.

Tvarkykite asinchronines klaidas

Kai dirbate su Redis programa NodeJS, daugelis Redis operacijų yra asinchroninės, tai reiškia, kad jos naudoja callback arba Promises.

Norint išvengti programos gedimų, labai svarbu tinkamai tvarkyti klaidas. Štai pavyzdys, kaip tvarkyti klaidas naudojant 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);  
});  

Ir naudojant async/await su 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();  

Tvarkyti Redis ryšius

Norint valdyti Redis ryšius, rekomenduojama naudoti klientų Redis bibliotekos pateiktą ryšių telkinį. Pavyzdžiui, su „ioredis“:

const Redis = require('ioredis');  
const redis = new Redis({  
  // connection options here  
});  

Klientas automatiškai valdys ryšius ir efektyviai panaudos juos pakartotinai.

Tvarkyti atvejus, kai Redis nėra

Jei norite tvarkyti atvejus, kai Redis nepasiekiamas arba reaguoja lėtai, apsvarstykite galimybę nustatyti tinkamus skirtuosius laikus ir dailiai tvarkyti ryšio klaidas.

const Redis = require('ioredis');  
const redis = new Redis({  
  retryStrategy:(times) => {  
    return Math.min(times * 50, 2000); // Retry with exponential backoff up to 2 seconds  
  },  
});  

Naudokite Redis Sentinel

Redis Sentinel užtikrina aukštą Redis grupių pasiekiamumą ir stebėjimą. Jis automatiškai tvarko perdavimus, kai pagrindinis mazgas tampa nepasiekiamas.

Štai konfigūracijos pavyzdys:

sentinel monitor mymaster 127.0.0.1 6379 2  
sentinel down-after-milliseconds mymaster 5000  
sentinel failover-timeout my  

Aukščiau pateikta konfigūracija nustato a Redis Sentinel, kuri stebi Redis pagrindinį įrenginį su 5 000 ms slenksčiu po milisekundžių, 10 000 ms pertrūkio skirtojo laiko ir 1 lygiagrečią sinchronizaciją.

 

Atlikdami šiuos veiksmus ir pavyzdžius, galite efektyviai šalinti triktis ir tvarkyti klaidas dirbdami su Redis programa NodeJS, taip užtikrindami programos patikimumą ir našumą.