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.