Redis Node.js'de Hataları İşleme ve Sorun Giderme

NodeJS Bir uygulamayla entegrasyon sırasında sorun giderme ve hata işleme, Redis uygulamanın kararlılığını ve verimliliğini sağlamak için önemli bir süreçtir.

Redis Aşağıda, bir uygulamada çalışırken sorun giderme ve hata işlemenin nasıl gerçekleştirileceğine ilişkin bazı ayrıntılar ve örnekler bulunmaktadır NodeJS.

Görüş Redis log

Redis önemli olayları, uyarıları ve hataları kaydetmek için günlükler sağlar. Bu günlükler Redis ,. Oturum açmayı etkinleştirmek için yapılandırma dosyasını değiştirmeniz ve uygun günlük kaydı düzeyini ayarlamanız Redis gerekir. redis.conf

Bir dosyaya günlüğe kaydetmeyi etkinleştirmenin bir örneğini burada bulabilirsiniz:

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

log Dosya dizininin var olduğundan ve işlem tarafından yazılabilir olduğundan emin olun Redis.

Kullanmak Redis Monitor

Redis Monitor Redis sunucuda yürütülen gerçek zamanlı komutları izlemenizi sağlayan yerleşik bir komuttur. NET'e gönderilen gerçek komutları anlamak için yararlıdır Redis.

Redis Monitor Bir uygulamada "ioredis" kitaplığı ile kullanımına bir örnek 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);  
  });  
});  

Bu kod, sunucu tarafından alınan Redis her komutu gerçek zamanlı olarak yazdıran bir monitör kurar. Redis

Eşzamansız hataları işleme

Redis Bir uygulamada çalışırken NodeJS, birçok Redis işlem eşzamansızdır, yani callback veya kullanırlar Promises.

Uygulama çökmelerini önlemek için hataları düzgün bir şekilde işlemek çok önemlidir. İşte hata işlemeye bir örnek 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);  
});  

Ve async/await ile kullanarak 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 Bağlantıları yönet

Bağlantıları yönetmek için Redis, istemci kitaplığı tarafından sağlanan bir bağlantı havuzunu kullanmanız önerilir Redis. Örneğin, "ioredis" ile:

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

İstemci, bağlantıları otomatik olarak yönetecek ve verimli bir şekilde yeniden kullanacaktır.

Redis Kullanılamadığı durumlarda vakaları ele alın

Redis Kullanılamadığı veya yavaş yanıt verdiği durumlarla başa çıkmak için uygun zaman aşımlarını ayarlamayı ve bağlantı hatalarını incelikle ele almayı düşünün.

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

Kullanmak Redis Sentinel

Redis Sentinel kümeler için yüksek kullanılabilirlik ve izleme sağlar Redis. Bir ana düğüm kullanılamaz hale geldiğinde yük devretmeleri otomatik olarak işler.

İşte bir örnek yapılandırma:

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

Yukarıdaki yapılandırma, 5000ms'lik bir milisaniye sonrası eşik değeri, 10000ms'lik yük devretme zaman aşımı ve 1 paralel senkronizasyon ile bir master'ı Redis Sentinel izleyen bir yapılandırma kurar. Redis

 

Redis Bu adımları ve örnekleri izleyerek, bir uygulamada çalışırken hataları etkili bir şekilde giderebilir ve çözebilir NodeJS, uygulamanızın güvenilirliğini ve performansını sağlayabilirsiniz.