Redis gerekli mi? PostgreSQL kuyruklama, kilitleme ve pub/sub sağlıyorken (2021)
(spin.atomicobject.com)-
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 LOCKEDseç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
LISTENveNOTIFYifadeleriyle 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
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
PostgreSQL, basit bir SQL veritabanından fazlasını sunar
PGQueuer, PostgreSQL kullanarak iş kuyruğu, kilitleme ve gerçek zamanlı bildirimler sunan minimal bir alternatiftir
Postgres güçlü bir veritabanıdır
Projelerin çoğu yalnızca basit bir iş kuyruğuna ihtiyaç duyar ve karmaşık yığını sadeleştirmek önemlidir
Postgres'in bazı sınırlamaları vardır
PostgreSQL ile başlayıp ihtiyaç olduğunda Redis'e geçmek iyi bir yaklaşımdır
Postgres pub/sub'ın büyük bir dezavantajı, mesaj boyutunun 8000 baytla sınırlı olmasıdır
Redis'in en önemli kullanım alanlarından biri olan önbellekleme, Postgres'te daha karmaşıktır
Bu tür işlevler Postgres'te kullanıldığında güncellemeler ve replikasyon daha zor hale gelir