Earráidí agus Fabhtcheartú a Láimhseáil Redis in Node.js

Is próiseas riachtanach é earráidí in NodeJS iarratas a réiteach agus a láimhseáil agus é á Redis chomhtháthú le cobhsaíocht agus éifeachtúlacht an fheidhmchláir.

Seo thíos roinnt sonraí agus samplaí maidir le conas fabhtcheartaithe agus láimhseáil earráidí a dhéanamh agus tú ag obair leis Redis in NodeJS iarratas.

Amharc Redis log

Redis soláthraíonn sé logaí chun imeachtaí tábhachtacha, rabhaidh agus earráidí a thaifeadadh. Is féidir leis na logaí seo a bheith úsáideach chun fadhbanna a réiteach le Redis. Chun logáil isteach a chumasú Redis, ní mór duit an redis.conf comhad cumraíochta a mhodhnú agus an leibhéal logála cuí a shocrú.

Seo sampla de logáil isteach i gcomhad a chumasú:

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

Cinntigh go bhfuil an log t-eolaire comhad ann agus go bhfuil sé inscríofa de réir an Redis phróisis.

Úsáid Redis Monitor

Redis Monitor Is ordú ionsuite é a ligeann duit monatóireacht a dhéanamh ar Redis orduithe fíor-ama a dhéantar ar an bhfreastalaí. Tá sé ina chuidiú tuiscint a fháil ar na horduithe iarbhír a sheoltar chuig Redis.

Seo sampla d’úsáid Redis Monitor leis an leabharlann “ioredis” in NodeJS feidhmchlár:

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);  
  });  
});  

Socraíonn an cód seo Redis monatóir a phriontálann gach Redis ordú a fhaigheann an freastalaí i bhfíor-am.

Déileáil le hearráidí asincrónacha

Nuair a bhíonn tú ag obair le Redis feidhmchlár NodeJS, Redis bíonn go leor oibríochtaí asincrónacha, rud a chiallaíonn go n-úsáideann siad callbackPromises.

Tá sé ríthábhachtach earráidí a láimhseáil i gceart chun tuairteanna feidhmchlár a sheachaint. Seo sampla de láimhseáil earráidí le 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);  
});  

Agus ag baint úsáide async/await as le 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();  

Bainistigh Redis naisc

Chun Redis naisc a bhainistiú, moltar úsáid a bhaint as linn naisc a sholáthraíonn Redis leabharlann na gcliant. Mar shampla, le "ioredis":

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

Déanfaidh an cliant naisc a bhainistiú go huathoibríoch agus iad a athúsáid go héifeachtach.

Déileáil le cásanna nuair Redis nach bhfuil siad ar fáil

Chun cásanna Redis nach bhfuil ar fáil a láimhseáil nó nuair a fhreagraíonn sé go mall, smaoinigh ar amanna ama cuí a shocrú agus earráidí ceangail a láimhseáil go galánta.

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

Úsáid Redis Sentinel

Redis Sentinel soláthraíonn sé ard-infhaighteacht agus monatóireacht do Redis bhraislí. Láimhseálann sé go huathoibríoch teipeanna nuair nach mbíonn máistir nód ar fáil.

Seo cumraíocht shamplach:

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

Socraíonn an chumraíocht thuas máistir Redis Sentinel a dhéanann monatóireacht ar Redis mháistir le tairseach síos-i ndiaidh na milleasoicindí de 5000ms, teorainn ama teip 10000ms, agus sioncrónú comhthreomhar amháin.

 

Trí na céimeanna agus na samplaí seo a leanúint, is féidir leat earráidí a réiteach agus a láimhseáil go héifeachtach agus tú ag obair leo Redis in NodeJS fheidhmchlár, ag cinntiú iontaofacht agus feidhmíocht d’fheidhmchláir.