Virheiden käsittely ja vianmääritys Redis Node.js:ssä

Vianetsintä ja virheiden käsittely sovelluksessa NodeJS integroitaessa Redis on olennainen prosessi sovelluksen vakauden ja tehokkuuden varmistamiseksi.

Alla on joitain yksityiskohtia ja esimerkkejä vianmäärityksen ja virheiden käsittelyn suorittamisesta Redis sovelluksessa työskenneltäessä NodeJS.

Näytä Redis log

Redis tarjoaa lokeja tärkeiden tapahtumien, varoitusten ja virheiden tallentamiseen. Nämä lokit voivat olla hyödyllisiä vianmäärityksessä Redis. Sisäänkirjautumisen mahdollistamiseksi Redis sinun on muokattava asetustiedostoa redis.conf ja asetettava sopiva kirjaustaso.

Tässä on esimerkki tiedostoon kirjaamisen sallimisesta:

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

Varmista, että log tiedostohakemisto on olemassa ja että prosessi voi kirjoittaa siihen Redis.

Käyttää Redis Monitor

Redis Monitor on sisäänrakennettu komento, jonka avulla voit seurata Redis palvelimella suoritettavia reaaliaikaisia ​​komentoja. Se auttaa ymmärtämään osoitteeseen lähetettävät todelliset komennot Redis.

Tässä on esimerkki käytöstä Redis Monitor "ioredis"-kirjaston kanssa sovelluksessa 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);  
  });  
});  

Tämä koodi asettaa monitorin Redis, joka tulostaa jokaisen Redis palvelimen vastaanottaman komennon reaaliajassa.

Käsittele asynkronisia virheitä

Kun työskentelet Redis sovelluksessa NodeJS, monet Redis toiminnot ovat asynkronisia, eli ne käyttävät callback tai Promises.

Virheiden asianmukainen käsittely on ratkaisevan tärkeää sovellusten kaatumisen välttämiseksi. Tässä on esimerkki virheiden käsittelystä 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);  
});  

Ja käyttö async/await seuraavien kanssa 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();  

Hallitse Redis yhteyksiä

Yhteyksien hallintaan Redis on suositeltavaa käyttää asiakaskirjaston tarjoamaa yhteyspoolia Redis. Esimerkiksi "ioredis":llä:

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

Asiakas hallitsee yhteyksiä automaattisesti ja käyttää niitä uudelleen tehokkaasti.

Käsittele tapauksia, kun Redis ei ole käytettävissä

Jos haluat käsitellä tapauksia, joissa Redis se ei ole käytettävissä tai vastaa hitaasti, harkitse asianmukaisten aikakatkaisujen asettamista ja yhteysvirheiden sulavaa käsittelyä.

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

Käyttää Redis Sentinel

Redis Sentinel tarjoaa korkean käytettävyyden ja valvonnan klustereille Redis. Se käsittelee vikasiirrot automaattisesti, kun pääsolmu ei ole käytettävissä.

Tässä esimerkki kokoonpanosta:

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

Yllä oleva kokoonpano määrittää a Redis Sentinel, joka valvoo Redis isäntäkonetta, jonka alas-after-sekunnin kynnys on 5000 ms, vikasietoaika 10 000 ms ja yksi rinnakkaissynkronointi.

 

Seuraamalla näitä vaiheita ja esimerkkejä voit tehdä vianmäärityksen ja käsitellä sovelluksen kanssa työskennellessäsi virheitä tehokkaasti Redis, NodeJS mikä varmistaa sovelluksesi luotettavuuden ja suorituskyvyn.