Redis'in lisans değişikliği sonrası modern önbellek mimarisini planlayın. Microsoft Garnet'in Tsavorite HybridLog (RAM + NVMe) katmanlaması, Dragonfly'ın paylaşımsız (shared-nothing) aşırı QPS gücü ve Valkey 8'in Linux Foundation güvencesindeki açık kaynak BSD ekosistemini karşılaştırın.
120 GB toplam veri setinde sıcak veri oranı %30 iken Microsoft Garnet, Tsavorite hibrit katmanlaması sayesinde RAM ihtiyacını 163.5 GB'tan 42.6 GB'a düşürür (%74 RAM tasarrufu). AWS ElastiCache'in aylık ~$1,980 faturası yerine tek bir VDS üzerinde yılda ~$22,728 tasarruf elde edilir.
Tüm anahtar/değer çiftlerinin ham toplam boyutu (Soğuk + Sıcak veri).
Sıkça erişilen sıcak anahtarlar. Garnet bu veriyi DRAM'de, kalanını NVMe diskte tutar.
Kampanya ve ani trafik anlarında sunucu başına talep edilen işlem/saniye.
Yüksek okuma oranları, kilitlenmesiz ring buffer'lar sayesinde QPS'i 2 katına çıkarır.
Garnet ve Dragonfly tüm çekirdekleri doğrusal ölçekler; Valkey/Redis 4-6 çekirdekte doyuma ulaşır.
Microsoft Garnet, bellek dolduğunda anahtarları rastgele silmek (eviction) veya OOM ile çökmek yerine, soğuk veriyi otomatik olarak yerel NVMe diske kaydırır. Böylece devasa önbellekler %70 daha ucuz VDS'lerde çalışır.
RAM aşımında soğuk veriyi otomatik NVMe diske aktarır; OOM çökmesi imkansızdır.
Çekirdek başına paylaşımsız mimari ve Dash Table ile en düşük saf RAM gecikmesi.
Redis ekosistemi ile %100 uyumlu, lisans kısıtlaması olmayan Linux Foundation standardı.
Sektörün en yaygın aracı ancak lisans kısıtlamaları ve fork() bellek sıçramaları taşır.
Klasik Redis, uzun yıllar web dünyasının tek de-facto standardı oldu. Ancak modern yüksek eşzamanlılıklı mikroservisler, AI embedding vektör önbellekleri ve büyük veri platformlarında klasik Redis iki devasa problemle karşılaşır:
Redis ana komut işleme döngüsü tek iş parçacıklıdır (single-threaded). Sunucunuzda 32 veya 64 vCPU olsa bile, klasik Redis tek çekirdeğe hapsolarak saniyede 150.000 - 250.000 QPS sınırında doyuma ulaşır. Çoklu küme (cluster) kurmak ise operasyonel karmaşıklığı 5 katına çıkarır.
Redis disk snapshot'ı alırken (`BGSAVE`) Linux `fork()` sistem çağrısını tetikler. Yoğun yazma altında Copy-on-Write (CoW) nedeniyle kullanılan RAM miktarı ikiye katlanabilir. Bellek taşarsa Linux OOM Killer Redis sürecini ansızın sonlandırır.
Microsoft Research tarafından C# ile geliştirilen Garnet, bellek yönetiminde .NET çöp toplayıcısını (GC) devre dışı bırakarak ham işaretçiler (pointers) ve kilitlenmesiz ring buffer'lar kullanır. Garnet'in en devrimsel yeteneği Tsavorite HybridLog motorudur: Sıcak veriyi DRAM üzerinde tutarken, nadir erişilen soğuk veriyi otomatik olarak sunucunun yerel NVMe SSD diskine aktarır. Böylece 128 GB RAM'e sahip bir sunucuda 1 Terabaytlık önbellek sıfır veri kaybı ve sıfır OOM riskiyle saklanabilir.
Dragonfly, C++20 ve Linux io_uring temelinde inşa edilmiş paylaşımsız bir mimaridir. Her vCPU çekirdeği kendi bağımsız bellek alanını yönetir, bu sayede işlemciler arası veri senkronizasyonu ve kilitlenme (lock contention) ortadan kalkar. Patentli Dash Table yapısı Redis'in jemalloc yapısına kıyasla %20-30 daha az bellek kullanır ve 64 çekirdekli tek bir VDS sunucusunda 4.000.000+ QPS hızına ulaşabilir.
Redis'in ticari lisans değişikliği sonrası doğan Valkey projesi, Linux Foundation çatısı altında AWS, Google Cloud, Oracle ve Ericsson tarafından geliştirilmektedir. Valkey 8 sürümüyle gelen çoklu iş parçacıklı I/O optimizasyonları ve soket kuyruğu iyileştirmeleri sayesinde Redis 7'ye kıyasla 2-3 kat daha yüksek verim sunar. Redis ile %100 geriye dönük uyumludur; mevcut uygulamanızda hiçbir istemci kütüphanesi değiştirmeden doğrudan kullanılabilir.