İçeriğe geç
Redis / Valkey

Redis ve Valkey, anahtarlarla erişilen veri yapılarını bellek içinde işleyen sunuculardır. Önbellek, oturum, hız sınırlama, sıralama ve bazı mesajlaşma örüntülerinde kullanılabilirler. Bu rollerin veri kaybı ve eviction (bellek sınırında anahtar çıkarma) politikaları aynı değildir. TTL, anahtarın ne zaman sona ereceğini; eviction ise bellek baskısında hangi anahtarların çıkarılabileceğini belirler.

Valkey, Redis OSS 7.2.4’ten türemiş ve bağımsız gelişen bir projedir. Ortak geçmiş, sonraki bütün sürümlerin komut, modül ve veri dosyası düzeyinde birebir aynı kalacağı anlamına gelmez.

Redis ile Valkey arasındaki lisans farkı

Redis’in resmi lisans açıklaması ve Valkey lisans dosyası sürüme bağlı okunmalıdır.

Ürün/sürümLisans kapsamı
Redis çekirdeği 7.2 ve öncesiBSD-3-Clause
Redis 7.4RSALv2 veya SSPLv1; bunlar OSI onaylı açık kaynak lisansları değildir
Redis 8RSALv2, SSPLv1 veya AGPLv3 seçeneği
Valkey çekirdeğiBSD-3-Clause

Redis 8’in AGPLv3 seçeneğini yok sayarak “Redis artık açık kaynak değil” demek güncel tabloyu yansıtmaz. Aynı şekilde Valkey’in çekirdek lisansı bütün modül ve yönetilen hizmetlerin koşullarını belirlemez. Karar; gereken özellikler, kullanım biçimi ve işletim sorumluluğuyla birlikte verilmelidir.

Cache, oturum ve kuyruk aynı şekilde işletilmez

  • Cache: Ana veritabanından yeniden üretilebilen veri için TTL ve eviction politikası belirlenir. Toplu cache kaybının kaynak veritabanını aşırı yüklememesi planlanır.
  • Oturum: Süre sonu, kullanıcı çıkışı ve güvenlik politikası birlikte ele alınır. Rastgele eviction kullanıcıların oturumunu etkileyebilir.
  • Streams veya iş kuyruğu: Onay, yeniden teslim, tüketici durumu ve kalıcılık ayrı tasarlanır. Pub/Sub, kalıcı bir mesaj kuyruğu gibi değerlendirilmez.
  • Dağıtık kilit: TTL veya tek bir atomik komut bütün hata senaryolarında iş doğruluğu sağlamaz; lease süresi, istemci duraklaması ve gerekirse fencing değerlendirilir.

Cache ile kaybedilmemesi gereken iş verisini aynı eviction politikası altında toplamak risklidir. Mesaj yönlendirme veya olayların yeniden okunması asıl ihtiyaçsa RabbitMQ ve Kafka da karşılaştırılmalıdır.

Sentinel mi Cluster mı?

Sentinel, primary-replica topolojisinde izleme, failover ve istemciye primary bilgisini sağlama görevlerini üstlenir. Veri sharding’i yapmaz. Sentinel üyeleri bağımsız hata alanlarına dağıtılır ve istemcinin Sentinel desteği doğrulanır.

Cluster ise veri ve trafiğin birden fazla shard’a dağıtılması gerektiğinde değerlendirilir. İstemci yönlendirmesi, çok anahtarlı işlemler ve anahtar dağılımı tasarımın parçasıdır. Ne Sentinel ne de Cluster, asenkron replikasyonun bütün veri kaybı pencerelerini ortadan kaldırır.

AOF, RDB ve bellek planı

Kalıcılık belgesi, RDB snapshot ile AOF kayıtlarının farklı geri dönüş özelliklerini açıklar. RDB, veri kümesinin belirli bir andaki snapshot’ını; AOF (Append-Only File), veri kümesini yeniden oluşturmak için yazma işlemlerinin kaydını tutar. fsync sıklığı, kaydın kalıcı depolamaya ne zaman aktarılacağını etkiler; veri kaybı hedefi ve disk yüküyle birlikte seçilir.

maxmemory, eviction politikası ve TTL uygulama rolüne göre belirlenir. Bütün anahtarlara koşulsuz TTL koymak veya bütün veriyi LRU ile atılabilir saymak doğru değildir. Fork/copy-on-write, replikasyon ve istemci buffer’ları için ek bellek payı gerekir.

Gecikme artışında büyük anahtarlar, uzun komutlar, ağ ve disk gecikmesi incelenir. KEYS * gibi tüm veri kümesini tarayan işlemler üretimde kontrolsüz kullanılmaz. SCAN kullanımı da veri büyüklüğü ve çağrı hızı açısından izlenmelidir.

Redis’ten Valkey’e geçiş planı

Resmi geçiş rehberi Redis OSS 7.2 ve öncesini temel alır; Redis CE 7.4 ve sonrası veri dosyalarının uyumlu olmadığını açıkça belirtir.

  1. Kaynak sürüm, modüller, kullanılan komutlar, Lua betikleri ve istemcileri çıkarın.
  2. Snapshot, replikasyon veya veri aktarım yönteminin sürüm çiftine uygunluğunu doğrulayın.
  3. Anahtar türleri, TTL, uygulama sonuçları ve yük altında gecikmeyi pilotta karşılaştırın.
  4. Son yazma işlemlerinin nasıl aktarılacağını ve istemcilerin ne zaman yönlendirileceğini belirleyin.
  5. Geri dönüş için uyumlu yedek ve yeni yazma işlemlerinin uzlaştırma planını koruyun.

İlgili hizmetlerimiz

Sıkça sorulan sorular

Redis artık açık kaynak değil mi?
Sürüm ayrılmalıdır. Redis çekirdeği 7.2 ve öncesinde BSD-3-Clause; 7.4’te RSALv2/SSPLv1 seçenekleriyle yayımlanır. Redis 8 ile AGPLv3 seçeneği eklenmiştir. Redis’in bütün sürümlerini aynı lisans statüsünde göstermek doğru değildir.
Redis'ten Valkey'e yalnız process değiştirerek geçilir mi?
Böyle bir genel garanti yoktur. Resmi Valkey rehberi Redis OSS 7.2 ve öncesiyle uyumu temel alır; Redis CE 7.4 ve sonrasının veri dosyalarını uyumlu kabul etmez. Komutlar, modüller, istemciler ve geri dönüş yolu ayrıca test edilmelidir.
Sentinel ile Cluster arasındaki fark nedir?
Sentinel, sharding yapmadan primary-replica erişilebilirliğini ve failover’ı yönetir. Cluster veriyi shard’lara dağıtır. Seçim sabit bir GB eşiğine değil; bellek, trafik, anahtar dağılımı ve uygulamanın Cluster desteğine dayanır.
AOF ve replica varsa yedek gerekli mi?
Evet. AOF hatalı komutları da kaydeder, replikasyon onları diğer node’lara taşır. Geçmiş duruma dönüş için ayrı yedek ve restore testi gerekir. everysec fsync politikası da sıfır veri kaybı garantisi değildir.

Bir sonraki dönüşümü birlikte planlayalım.

Ekibimiz teknik gereksinimlerinizi anlamak ve hızlıca prototip çıkarmak için hazır.