Redis mi Valkey mi? Aynı kök, iş yüküne göre ters benchmark veriyor

|Yazar: QUASA Editör Ekibi|5 dk okuma
Redis mi Valkey mi? Aynı kök, iş yüküne göre ters benchmark veriyor

Yalın önbellek veya oturum deposu için Redis ile Valkey arasında evrensel bir performans kazananı yok. İzin verici BSD lisansı zorunluysa ve gereken komutlar karşılanıyorsa Valkey güçlü bir aday; bütünleşik JSON, arama ve zaman serisi işlevleri gerekiyorsa Redis Open Source daha doğrudan bir seçenek. Yayımlanmış testlerde üstünlüğün iş yüküyle yön değiştirmesi, seçimi tek bir işlem/saniye skoruna bırakmamayı gerektiriyor.

İki ürün ortak bir kod geçmişinden geliyor, ancak lisansları ve özellik paketleri artık aynı değil. Üstelik önbellekte GET/SET trafiği, oturum kayıtlarının yenilenmesi ve büyük bir sıralı kümeye ekleme yapılması farklı maliyetler yaratıyor. Ölçüm sonuçları ancak kullanılan komut, veri boyutu, istemci ve donanımla birlikte anlam kazanıyor.

Lisans seçimi sürüme bağlı

Redis Open Source ve Valkey’in ortak kod kökeninden farklı lisans seçeneklerine ayrılması.

Redis’in lisans tablosuna göre Redis Open Source 8 ve sonraki sürümler AGPLv3, RSALv2 veya SSPLv1 seçenekleriyle sunuluyor; Redis 7.2 ve öncesi BSD-3-Clause kapsamındaydı. AGPLv3 açık kaynak bir seçenek olsa da BSD gibi izin verici bir lisans değil. Değiştirilmiş yazılımı ağ üzerinden hizmet olarak sunan bir kuruluş için seçilen lisansın yükümlülükleri bu nedenle ayrı bir karar konusu.

Valkey’in proje deposu, ürünün Redis’in eski açık kaynak kodundan ayrıldığını, BSD-3-Clause lisansını ve genişletilebilir eklenti yapısını gösteriyor. BSD koşulu olan bir dağıtımda bu fark, küçük bir hız üstünlüğünden daha belirleyici olabilir. Buna karşılık Redis’in yeni sürümlerini yalnızca kaynak kodu görülebilen yazılım diye tanımlamak da AGPLv3 seçeneğini göz ardı eder.

Ortak komutlar, farklı özellik paketleri

Basit anahtar-değer önbelleği ve süreli oturum kayıtları iki ürünün de kullanım alanı. Ayrım, uygulama JSON belgesinin içindeki alanları sorgulamak, metin veya vektör aramak ya da zaman serisi işlemleri yapmak istediğinde büyüyor. Redis Open Source bu yetenekleri dağıtımına dahil ediyor; Valkey’in eklenti desteği ise aynı bileşenlerin her Valkey kurulumunda hazır olduğu anlamına gelmiyor.

Bu yüzden göçte komut adlarının benzemesi tek başına uyumluluk kanıtı sayılmaz. Serileştirilmiş bir değeri GET ile okumak, JSON içindeki alanları sunucu tarafında sorgulamaktan farklı bir ihtiyaç. İlk kullanım temel komutlarla karşılanabilir; ikincisinde ilgili özelliğin kurulu olması ve uygulamanın beklediği davranışı sağlaması gerekir. Oturum deposunda da süre sonu, anahtar silme ve bağlantı kesintisi sonrasındaki davranış, uzun bir özellik listesinden daha somut seçim ölçütleridir.

Dört vCPU testinin ham sonuçları

Centminmod’un test deposunda Redis 8.0.2 ile Valkey 8.1.1, dört vCPU ve 16 GB RAM’li GitHub Actions çalıştırıcısında Docker host ağıyla karşılaştırılıyor. memtier_benchmark yükü 512 bayt değer, 1:15 SET:GET oranı, iş parçacığı başına 100 istemci ve pipeline derinliği 1 kullanıyor. Anahtarlar geniş bir dağılımdan seçiliyor; sunucular dört I/O iş parçacığıyla yapılandırılıyor. Aşağıdaki sonuçlar TLS kullanılmayan istemci iş parçacığı ölçümleridir:

  • 1 iş parçacığı: Redis 61.112 işlem/sn ve ortalama 1,64 ms; Valkey 56.000 işlem/sn ve 1,79 ms.
  • 2 iş parçacığı: Redis 121.315 işlem/sn ve 1,65 ms; Valkey 68.335 işlem/sn ve 3,06 ms.
  • 4 iş parçacığı: Redis 125.524 işlem/sn ve 3,18 ms; Valkey 98.119 işlem/sn ve 4,15 ms.
  • 8 iş parçacığı: Redis 124.294 işlem/sn ve 6,52 ms; Valkey 104.091 işlem/sn ve 7,90 ms.

Dört istemci iş parçacığında Redis hem daha fazla işlem tamamlıyor hem de daha düşük ortalama gecikme veriyor. İş parçacığı sayısı sekize çıktığında Redis’in işlem hacmi artmıyor; dört vCPU’lu makinenin kapasitesi de bu sonucun bir parçası. Bu satırlar, söz konusu sürüm ve ayarların karma GET/SET yükündeki ölçümüdür.

Aynı depodaki ayrı bir PHP testi, WordPress nesne önbelleği kalıplarını taklit ediyor. Tek iş parçacıklı bu yükte Redis 16.605, Valkey 16.561 işlem/sn üretiyor; ortalama gecikmeler sırasıyla 0,0597 ve 0,0598 ms. GET ile süreli SETEX işlemlerini kullanan bu benzetimde fark çok küçük. Değerler bir WordPress sitesinin uçtan uca sayfa açılış hızını göstermediği gibi memtier satırlarının devamı da değil.

Sıralı kümede üstünlük yön değiştiriyor

Sıralı küme ekleme testinde Valkey’in Redis’ten biraz yüksek işlem hızı üretmesi.

Valkey hizmeti de sunan Momento’nun sıralı küme ölçümünde Valkey 9.1.2, Redis 8.10.2’nin önüne geçiyor: medyan ekleme hızları yaklaşık 647 bin ve 632 bin işlem/sn, bildirilen bellek kullanımları ise 3,34 GB ve 3,73 GB. Test, tek bir ZSET içine 50 milyon üyenin pipelined ZADD komutlarıyla eklenmesini ölçüyor. Sürümler aynı Graviton4 makinesinde, aynı araçla, ayrı ayrı çalıştırılmış ve her biri tekrar edilmiş.

Buradaki üstünlük belirli bir veri yapısının ekleme ve bellek maliyetine ait. Momento’nun Valkey hizmeti sunması da sonucun bağımsız bir ürün değerlendirmesi gibi okunmaması için önemli bir bağlam. Önceki önbellek testinden hem donanım ve sürümler hem de komut dağılımı farklı olduğu için iki deneyin mutlak işlem hızları karşılaştırılamaz. İki deneyin birlikte gösterdiği şey daha dar ve daha kullanışlı: hangi ürünün öne çıktığı, ölçülen işe bağlı.

Karar için hangi ölçüm anlamlı?

Valkey’in benchmark belgeleri, tek bağlantıda art arda gönderilen senkron komutların çoğunlukla ağ gidiş-dönüşünü ve istemci kitaplığını ölçtüğünü açıklıyor. Bağlantı ve iş parçacığı sayısı ile pipeline derinliği sonucu değiştirebildiğinden, karşılaştırılan ürünlerde bunların ve komut karışımının açıkça belirtilmesi gerekir. Aynı isimli komutlar bile farklı değer boyutları veya anahtar dağılımlarıyla çalıştırıldığında aynı iş yükünü temsil etmez.

Önbellek seçiminde okuma-yazma oranı, değer boyutu, anahtar dağılımı ve kayıtların yaşam süresi önemlidir. Oturum deposunda kısa kayıtların sık yenilenmesi, büyük kayıtların seyrek okunmasından farklı trafik üretir. Kalıcılık, TLS ve kaynak sınırları da iki aday için aynı koşullarda ele alınmalı; yoğunluktaki gecikme dağılımı, yalnızca en yüksek işlem hacminden daha açıklayıcı olabilir.

Standart önbellek veya oturum komutları yeterliyse ve BSD lisansı şartsa Valkey mantıklı bir başlangıç seçimi. Bütünleşik JSON, arama veya zaman serisi yetenekleri kullanılıyorsa Redis Open Source’un paket kapsamı güçlü bir gerekçe; Valkey’e geçişte karşılık gelen özellik ve komut davranışı ayrıca doğrulanmalı. Lisans ve işlevler her iki tarafta da uygunsa belirleyici sonuç, uygulamanın gerçek komutları ve gecikme hedefiyle aynı koşullarda yapılan ölçümden gelir.

Ayrıca okuyun:

Paylaş:

Bültenimize abone olun

En son Web3, yapay zekâ ve kripto haberleri doğrudan gelen kutunuza gelsin.

0