2 puan yazan GN⁺ 2024-11-04 | 1 yorum | WhatsApp'ta paylaş
  • Kullanım senaryosu 1: İş kuyruklama

    • Redis, web servislerinde arka plan işlerini koordine etmek için sıkça kullanılır.
    • PostgreSQL 9.5 sürümünden itibaren SKIP LOCKED seçeneği kullanılarak iş kuyruklama uygulanabilir.
    • Bu seçenek, kilit beklemeden iş seçmeyi mümkün kılar ve birden fazla çalışanın aynı işi aynı anda işlemesini engeller.
  • Kullanım senaryosu 2: Uygulama kilitleme

    • Redis, dağıtık kilitleme için sıkça kullanılır.
    • Aynı işlev, PostgreSQL'in advisory lock mekanizması kullanılarak gerçekleştirilebilir.
    • Advisory lock'lar, PostgreSQL'in dahili kilitleme motorunun uygulama tarafından tanımlanan amaçlarla kullanılmasını sağlar.
  • Kullanım senaryosu 3: Pub/Sub

    • Redis, olayları aktif istemcilere iletmek için kullanılır.
    • PostgreSQL 9 sürümünden itibaren LISTEN ve NOTIFY ifadeleriyle Pub/Sub işlevi sunar.
    • PostgreSQL istemcileri belirli mesaj kanallarına abone olabilir; başka bir istemci o kanala mesaj gönderdiğinde tüm aboneler bildirim alır.
  • PostgreSQL'den tam yararlanma

    • Redis, PostgreSQL'den farklı amaçlarla kullanılır ve TTL'li veri önbellekleme ile geçici veri depolamada güçlüdür.
    • PostgreSQL, bir SQL veritabanından fazlasını sunar ve Redis ile yapılan bazı işleri PostgreSQL ile değiştirme olanağı sağlayabilir.
    • Birden fazla veri hizmeti kullanmanın karmaşıklığını azaltmak ve operasyonel maliyetleri düşürmek için değerli bir tercih olabilir.

1 yorum

 
GN⁺ 2024-11-04
Hacker News görüşleri
  • Redis, uygulamayla aynı makinede çalıştığında çok hızlı yanıt süreleri sağlar. Bu da Postgres'ten farklı şeylerin yapılabilmesini mümkün kılar

    • Bellek içi anahtar-değer deposu, RAM'in performans özelliklerini gerektiren işler için uygundur
    • Ağ bağlantısı üzerinden RAM performansı elde edilemeyeceği açıktır
  • PostgreSQL, basit bir SQL veritabanından fazlasını sunar

    • Veritabanını yalnızca ORM'in arkasından kullanırsanız bazı özellikleri kaçırabilirsiniz
    • Redis gibi bir servis eklemek yerine, zaten kurulmuş olan veritabanından yararlanmak daha iyi olabilir
  • PGQueuer, PostgreSQL kullanarak iş kuyruğu, kilitleme ve gerçek zamanlı bildirimler sunan minimal bir alternatiftir

    • Redis ihtiyacını azaltır
  • Postgres güçlü bir veritabanıdır

    • Redis'in kullanım eşiği düşüktür, yüksek performans sunar ve ana veritabanının yükünü azaltır
    • API yanıtlarını önbelleğe almak Postgres'te de mümkündür, ancak Redis kullanmak daha basittir
    • Ayrı bir sistem kullanmanın dezavantajları vardır, ancak Redis söz konusu olduğunda bu dezavantaj çok büyük değildir
  • Projelerin çoğu yalnızca basit bir iş kuyruğuna ihtiyaç duyar ve karmaşık yığını sadeleştirmek önemlidir

    • Ticari ilgisi olan birçok farklı alternatif mevcuttur
  • Postgres'in bazı sınırlamaları vardır

    • KV store, kuyruk, pub/sub, kilitleme gibi işlevler çözülebilir, ancak basit değildir
  • PostgreSQL ile başlayıp ihtiyaç olduğunda Redis'e geçmek iyi bir yaklaşımdır

    • Hareketli parça sayısını en aza indirmek önemlidir
  • Postgres pub/sub'ın büyük bir dezavantajı, mesaj boyutunun 8000 baytla sınırlı olmasıdır

    • Veriyi veritabanında saklayıp ID göndermek mümkündür, ancak bu ek çalışma gerektirir
  • Redis'in en önemli kullanım alanlarından biri olan önbellekleme, Postgres'te daha karmaşıktır

    • Postgres'teki güncellemeler eklemelerden daha maliyetlidir ve dayanıklılık garantileri önbellekleme için önemli değildir
  • Bu tür işlevler Postgres'te kullanıldığında güncellemeler ve replikasyon daha zor hale gelir

    • Mümkün olsa da, Postgres'in daha yaygın kullanılan özelliklerine odaklanmayı tercih ederim