Hibák kezelése és hibaelhárítás Redis a Node.js-ben

Az alkalmazásban előforduló hibák elhárítása és kezelése a NodeJS -val való integráció során Redis elengedhetetlen folyamat az alkalmazás stabilitásának és hatékonyságának biztosításához.

Az alábbiakban bemutatunk néhány részletet és példát arra vonatkozóan, hogyan lehet hibaelhárítást és hibakezelést végrehajtani, amikor Redis egy NodeJS alkalmazásban dolgozik.

Kilátás Redis log

Redis naplókat biztosít a fontos események, figyelmeztetések és hibák rögzítéséhez. Ezek a naplók hasznosak lehetnek a következővel kapcsolatos problémák megoldásához Redis. A bejelentkezés engedélyezéséhez Redis módosítania kell a redis.conf konfigurációs fájlt, és be kell állítania a megfelelő naplózási szintet.

Íme egy példa a fájlba való naplózás engedélyezésére:

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

Győződjön meg arról, hogy a log fájlkönyvtár létezik, és a Redis folyamat által írható.

Használat Redis Monitor

Redis Monitor egy beépített parancs, amely lehetővé teszi Redis a kiszolgálón végrehajtott, valós idejű parancsok figyelését. Hasznos a címre küldött tényleges parancsok megértésében Redis.

Íme egy példa Redis Monitor az „ioredis” könyvtár használatára egy alkalmazásban 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);  
  });  
});  

Ez a kód egy monitort állít be, amely valós időben Redis nyomtat minden, a szerver által kapott parancsot. Redis

Kezelje az aszinkron hibákat

Redis Amikor egy alkalmazásban dolgozik NodeJS, sok Redis művelet aszinkron, vagyis a callback vagy Promises.

A hibák megfelelő kezelése kulcsfontosságú az alkalmazások összeomlásának elkerülése érdekében. Íme egy példa a hibák kezelésére a következővel 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);  
});  

És async/await együtt használva 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 Kapcsolatok kezelése

A kapcsolatok kezeléséhez ajánlatos az ügyfélkönyvtár Redis által biztosított kapcsolatkészletet használni. Redis Például az "ioredis" kifejezéssel:

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

A kliens automatikusan kezeli a kapcsolatokat, és hatékonyan újrafelhasználja azokat.

Kezelje azokat az eseteket, amikor Redis nem elérhető

A nem elérhető vagy lassan reagáló esetek kezeléséhez Redis fontolja meg a megfelelő időtúllépések beállítását és a csatlakozási hibák kecses kezelését.

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

Használat Redis Sentinel

Redis Sentinel magas rendelkezésre állást és felügyeletet biztosít Redis a fürtök számára. Automatikusan kezeli a feladatátvételeket, ha egy fő csomópont elérhetetlenné válik.

Íme egy példa konfiguráció:

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

A fenti konfiguráció beállít egy mestert Redis Sentinel, amely Redis 5000 ms-os lefutás utáni küszöbértékkel, 10 000 ms-os feladatátvételi időtúllépéssel és 1 párhuzamos szinkronizálással figyeli.

 

Az alábbi lépések és példák követésével hatékonyan elháríthatja és kezelheti a hibákat, amikor Redis egy NodeJS alkalmazásban dolgozik, ezzel biztosítva az alkalmazás megbízhatóságát és teljesítményét.