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.