Redis Nedir? Redis Cache, Pub/Sub, RDB, AOF ve Angular & Node.js Entegrasyonu

Bu yazıda Redis nedir, cache stratejileri, Pub/Sub mesajlaşma, RDB & AOF veri kalıcılığı ve Angular & Node.js ile Redis entegrasyonu konularını adım adım öğreniyoruz.

Kısa özet: Redis, RAM tabanlı çalışan yüksek performanslı bir veri deposudur. Cache, gerçek zamanlı sistemler ve mikroservis mimarilerinde kritik rol oynar.

Redis Nedir ve Ne İşe Yarar?

Redis (Remote Dictionary Server), RAM üzerinde çalışan in-memory veri yapısı sunucusudur.

Milisaniye seviyesinde erişim süresi sayesinde yüksek trafikli uygulamalarda performansı ciddi şekilde artırır.

Redis, veritabanı ile uygulama arasında ultra hızlı bir katman görevi görür.

Kullanım Alanları

  • Web & API cache
  • Gerçek zamanlı bildirim sistemleri
  • JWT ve session yönetimi
  • Oyun ve leaderboard sistemleri
  • E-ticaret (stok, sepet)
  • Analitik ve metrik toplama

Redis Cache Stratejileri

Redis cache, sık kullanılan verileri bellekte tutarak veritabanı yükünü azaltır ve API performansını artırır.

1. Cache-aside (Lazy Loading)

  1. Önce cache kontrol edilir
  2. Veri yoksa DB’den çekilir
  3. Cache’e yazılır
  4. Sonraki istekler cache’ten gelir
En yaygın ve en pratik cache stratejisidir.

2. TTL (Time To Live)

TTL, verinin cache’te ne kadar süre tutulacağını belirler.

3. Cache Invalidation

Veri güncellendiğinde cache temizlenmelidir.


DEL post:123
      

Temel Redis Komutları


SET post:123 "data" EX 300
GET post:123
DEL post:123
      

Redis Server ve Sentinel

Redis tek başına kullanıldığında single point of failure oluşturabilir.

  • Sentinel: Otomatik failover
  • Cluster: Yatay ölçekleme

redis-server /etc/redis/redis.conf
systemctl start redis
      
Production ortamında mutlaka Sentinel veya Cluster kullanılmalıdır.

RDB ve AOF Nedir?

Yöntem Avantaj Dezavantaj
RDB Hızlı, az disk kullanır Veri kaybı olabilir
AOF Veri güvenli Daha fazla disk kullanır
En iyi yaklaşım: RDB + AOF birlikte kullanmak.

Redis Pub/Sub

Pub/Sub modeli ile mesajlar anlık olarak tüm abonelere iletilir.

  • Chat uygulamaları
  • Canlı bildirimler
  • Dashboard sistemleri

PUBLISH kanal "Merhaba"
SUBSCRIBE kanal
      

Node.js & Angular ile Redis Kullanımı

Angular doğrudan Redis’e bağlanmaz. Arada bir backend (Node.js) bulunur.

Angular → Node.js → Redis mimarisi en doğru yaklaşımdır.

Node.js Redis Örneği


const redis = createClient();

app.get("/api/profile/:id", async (req, res) => {
  const key = `profile:${req.params.id}`;

  let data = await redis.get(key);

  if (!data) {
    data = JSON.stringify({ id: 1, name: "Ada" });
    await redis.setEx(key, 300, data);
  }

  res.json(JSON.parse(data));
});
      

Angular Servis


getProfile(id: string) {
  return this.http.get(`/api/profile/${id}`);
}
      

Redis Performans İpuçları

  1. TTL doğru ayarla
  2. Doğru veri tipini kullan
  3. Cache invalidation uygula
  4. Cluster kullan
  5. RAM kullanımını izle
  6. Gereksiz key temizle
  7. MONITOR’u production’da dikkatli kullan
Doğru yapılandırılmış Redis, sistem performansını katlayabilir.

Sık Sorulan Sorular

Redis nedir?

RAM tabanlı hızlı veri deposudur.

Redis cache nedir?

Sık kullanılan verilerin bellekte tutulmasıdır.

RDB vs AOF?

RDB hızlı, AOF daha güvenlidir.

Angular Redis kullanır mı?

Hayır, backend üzerinden kullanır.

Etiketler: redis nedir, redis cache, nodejs redis, angular redis, redis pubsub, redis performans

Latest Software Developers - Yazılım Blog Yazarı Profil Resmi

Yazar

LatestSoftwareDevelopers

Güncel yazılım teknolojilerinin takip edildiği blog.

Database ile ilgili yorumlar

Yorum Paylaş

EMail Zorunlu alanlar * *