Makale Başlıkları
- Bellek Ici Onbellek Neden Onemli?
- Memcached Nedir?
- Redis Nedir?
- Memcached ile Redis Karsilastirmasi
- Performans: Hangisi Gercekten Daha Hizli?
- Kalicilik: En Belirgin Fark
- Lisans Tarafinda Neler Degisti? (Redis, Valkey, Memcached)
- WordPress ve PHP Tarafinda Pratik Kullanim
- Hangisini Secmeli?
- Sikca Sorulan Sorular
Kisaca
Memcached ve Redis, veritabani yukunu azaltarak web uygulamalarini hizlandiran iki bellek ici onbellek cozumudur. Memcached sade, cok cekirdekli ve saf onbellekleme icin ideal; Redis ise veri yapilari, kalicilik ve mesajlasma ile cok daha yetenekli, adeta cok amacli bir veri aracidir. Cogu yeni proje esnekligi nedeniyle Redis (veya acik kaynak catallasmasi Valkey) tarafini secer.
- Sadece basit string onbellekleme ve maksimum sadelik istiyorsaniz Memcached yeterlidir.
- Veri yapilari, kalicilik, pub/sub veya kuyruk gerekiyorsa Redis dogru tercihtir.
- WordPress ve PHP object cache senaryolarinda Redis daha yaygin ve esnektir.
Web uygulamalarini hizlandirmanin en etkili yollarindan biri bellek ici (in-memory) onbellek kullanmaktir. Veritabanina tekrar tekrar gitmek yerine, sik kullanilan verileri RAM’de tutmak yanit surelerini buyuk olcude kisaltir, veritabani uzerindeki yuku dramatik bicimde dusurur. Bu alandaki iki populer cozum Memcached ve Redis‘tir. Ikisi de cok hizlidir, ama yetenekleri, mimarileri ve kullanim amaclari farklidir. Bu yazida Memcached ile Redis’i derinlemesine karsilastirip hangisini ne zaman secmeniz gerektigini, performans gerceklerini ve lisans tarafindaki son gelismeleri aciklayacagiz.
Her iki onbellek de uygulamanizla ayni sunucuda ya da ayri bir onbellek sunucusunda calistirilabilir. Bol RAM’li bir bulut sunucu veya VPS, ikisi icin de ideal bir zemindir; cunku bu araclarin tum gucu, verileri diske degil dogrudan bellekte tutmasindan gelir.
Bellek Ici Onbellek Neden Onemli?
Tipik bir dinamik web sayfasi, her istekte veritabanina onlarca sorgu gonderebilir. Disk ya da ag uzerinden gelen bu sorgular milisaniyelerle olculur ve trafik artinca veritabani darbogaza donusur. Bellek ici onbellek devreye girince mantik basit hale gelir: bir veri ilk kez hesaplandiginda RAM’e yazilir, sonraki isteklerde dogrudan bellekten mikrosaniye seviyesinde okunur. Boylece hem yanit suresi kisalir hem de veritabani sunucunuz nefes alir. Memcached ve Redis tam olarak bu isi yapar; aradaki fark, bu temel gorevin etrafina hangi ozelliklerin eklendigidir.
Memcached Nedir?
Memcached, basit ve son derece hizli bir bellek ici anahtar-deger (key-value) onbellegidir. Tek bir amaci vardir: kucuk veri parcalarini (sorgu sonuclari, oturum verileri, render edilmis HTML parcalari) RAM’de tutup aninda sunmak. Cok hafiftir, coklu is parcacigi (multi-threaded) mimarisiyle birden fazla CPU cekirdegini dogal olarak kullanir ve yuksek eszamanlilikta cok iyi olceklenir. Ancak yalnizca duz string veri tutar, kalicilik (persistence) sunmaz ve veri yapilari konusunda gelistirilmis bir yetenegi yoktur. Bu sadelik bir eksiklik degil, bilincli bir tasarim tercihidir: az ozellik, az surpriz, ongorulebilir performans.
Memcached’in Guclu Yanlari
- Cok cekirdekli olceklenme: Coklu is parcacigi sayesinde cok sayida CPU cekirdegini verimli kullanir; yuksek eszamanli, basit GET/SET trafiginde cok performanslidir.
- Dusuk bellek tuketimi: Slab tabanli bellek yonetimi ile string verileri kompakt sekilde saklar.
- Minimal yuzey: Ogrenmesi, kurmasi ve isletmesi kolaydir; hata yapma payi dusuktur.
Redis Nedir?
Redis de bellek ici bir anahtar-deger deposudur, ancak cok daha yeteneklidir. String’in yaninda liste, kume (set), hash, sirali kume (sorted set), bitmap, HyperLogLog ve gunumuzde stream gibi zengin veri yapilari destekler. Verileri diske yazarak kalicilik saglayabilir; pub/sub mesajlasma, atomik islemler (transaction), Lua betikleri, anahtar bazli TTL (sona erme suresi) ve hatta basit kuyruk gibi gelismis senaryolara imkan tanir. Bu yuzden Redis sadece bir onbellek degil, cok amacli bir veri araci olarak da kullanilir; oturum deposundan gercek zamanli siralama tablosuna, hiz limitleyiciden is kuyruguna kadar pek cok yerde karsiniza cikar.
Redis Tek Is Parcacikli mi? Gercegi
“Redis tek is parcaciklidir” cumlesi yaygin ama artik eksik bir ifadedir. Komut yurutme cekirdegi bilincli olarak tek is parcaciklidir; bu, kilit (lock) karmasikligini ortadan kaldirir ve islemleri atomik yapar. Ancak Redis 6.0 ile birlikte coklu is parcacikli I/O tanitilmis, sonraki surumlerde bu yetenek genisletilmistir. Yani ag girdi-cikti islemleri artik birden fazla cekirdege dagitilabilir; tek cekirdek darbogazi pratikte buyuk olcude yumusamistir.
Memcached ile Redis Karsilastirmasi
| Kriter | Memcached | Redis |
|---|---|---|
| Veri tipi | Yalnizca string | String, liste, set, hash, sirali set, stream, bitmap |
| Kalicilik | Yok | Var (RDB anlik goruntu + AOF) |
| Mimari | Tamamen coklu is parcacikli | Tek is parcacikli yurutme + coklu I/O (6.0+) |
| Maksimum deger boyutu | Varsayilan 1 MB | 512 MB’a kadar |
| Ek ozellikler | Minimal | Pub/sub, transaction, TTL, Lua script, replikasyon |
| Yuksek erisilebilirlik | Istemci tarafi sharding | Replikasyon + Sentinel + Cluster |
| Kullanim odagi | Basit, saf onbellek | Onbellek + veri yapisi + mesajlasma + kuyruk |
Performans: Hangisi Gercekten Daha Hizli?
En cok merak edilen soru budur ve cevabi cogunlukla hayal kirikligi yaratacak kadar dengeli: ikisi de alt-milisaniye gecikme ile calisir ve cogu senaryoda fark ihmal edilebilir. Saf, basit GET/SET trafiginde Memcached coklu is parcacikli yapisi sayesinde bir miktar onde olabilir; ancak Redis, ardisik komutlari tek pakette gonderen pipelining ile bu aciligi buyuk olcude kapatir. Pratikte tercihi belirleyen sey ham hiz degil, ozellikler ve kullanim senaryosudur.
| Senaryo | Daha uygun secim | Neden |
|---|---|---|
| Saf string onbellek, yuksek eszamanlilik | Memcached | Cok cekirdekli, dusuk overhead |
| Oturum deposu (yeniden baslatmada kaybolmasin) | Redis | Kalicilik + replikasyon |
| Gercek zamanli siralama / sayac | Redis | Sirali set ve atomik artirma |
| Hiz limitleyici (rate limiting) | Redis | TTL + atomik sayaclar |
| Pub/sub bildirim veya is kuyrugu | Redis | Yerlesik mesajlasma yapilari |
| WordPress/PHP object cache | Genellikle Redis | Daha yaygin destek ve esneklik |
Kalicilik: En Belirgin Fark
Memcached’i yeniden baslattiginizda icindeki tum veri silinir; cunku tasarim hedefi geciciliktir. Redis ise iki tamamlayici yontemle veriyi diske aktarabilir: RDB, belirli araliklarla veri kumesinin anlik goruntusunu (snapshot) alir ve yeniden baslatmada hizli kurtarma saglar. AOF (Append Only File) ise her yazma islemini sirayla kaydeder, boylece bir cokme aninda neredeyse hic veri kaybetmeden tam yeniden olusturma yapar. Onbellek verisi kaybolsa sorun olmayan bir senaryoda kalicilige ihtiyac duymazsiniz; ancak oturum, kuyruk ya da sayac gibi “kaybolmamasi gereken” veriler soz konusuysa Redis’in bu yetenegi belirleyici olur.
Lisans Tarafinda Neler Degisti? (Redis, Valkey, Memcached)
Bu konu son iki yilda hizla degisti, dolayisiyla guncel durumu bilmek onemli. Mart 2024‘te Redis Ltd., uzun yillardir kullanilan ozgur BSD lisansindan SSPL ve RSALv2 ikili lisans modeline gecti. Bu degisiklik toplulukta tepkiye yol acti ve Valkey adli, Linux Foundation cati altinda, eski acik lisansi koruyan bir catallasma (fork) ortaya cikti. Bir yil suren tartismanin ardindan Redis yon degistirdi: Redis 8 ile birlikte AGPLv3 acik kaynak lisansi da secenekler arasina eklendi. Bugun Redis Open Source, RSALv2, SSPLv1 ve AGPLv3 secenekleriyle dagitiliyor; Valkey ise bircok Linux dagiticisinda varsayilan bellek ici onbellek olarak yer aliyor. Memcached ise tum bu donemde sade BSD lisansiyla kalmaya devam etti.
Pratik anlami sudur: kullandiginiz sunucu dagitimina gore “Redis” yerine ona uyumlu Valkey paketi gelebilir. API ve komut seti buyuk olcude ayni oldugundan, uygulama tarafinda cogu zaman degisiklik gerekmez.
WordPress ve PHP Tarafinda Pratik Kullanim
WordPress’te en yaygin senaryo object cache‘tir: tema ve eklentilerin urettigi sorgu sonuclari Redis veya Memcached’te tutularak veritabani yuku azaltilir. Redis bu alanda daha populerdir; cogu eklenti ekosistemi ve barindirma yiginiyla iyi uyum saglar. Yuksek trafikli bir WordPress sitesi calistiriyorsaniz, sayfa onbellegi (LiteSpeed LSCache gibi) ile object cache’i birlikte kullanmak, performansta katmanli ve buyuk bir kazanim saglar. Alastyr altyapisindaki LiteSpeed + LSCache sayfa onbellegi, Redis/Memcached object cache ile birlikte calisarak hem dinamik sorgulari hem de tam sayfa ciktilarini hizlandirir.
Hangisini Secmeli?
Memcached secin: Ihtiyaciniz yalnizca basit, cok hizli bir onbellekse; kucuk string verileri (oturum, sorgu sonucu) sakliyorsaniz, cok cekirdekli olceklenme istiyorsaniz ve maksimum sadelige oncelik veriyorsaniz.
Redis (veya Valkey) secin: Onbellegin yaninda veri yapilari, kalicilik, pub/sub, kuyruk ya da atomik islemler gerekiyorsa. Tek bir aracla birden fazla ihtiyaci karsilamak istiyorsaniz Redis cogu durumda dogru cevaptir.
Bugun cogu yeni proje, esnekligi nedeniyle Redis/Valkey tarafini tercih ediyor; ancak saf onbellekleme icin Memcached hala son derece verimli ve gecerli bir secimdir. Dogru karar, “hangisi daha iyi” degil, “is yukunuze hangisi daha cok yakisiyor” sorusuyla verilir.
Sikca Sorulan Sorular
Memcached mi Redis mi daha hizli?
Saf basit onbellekte ikisi de alt-milisaniye gecikmeyle calisir ve fark cogu senaryoda ihmal edilebilir. Memcached cok cekirdekli yapisi sayesinde basit GET/SET’te bir miktar onde olabilir; Redis ise pipelining ile bu acigi kapatir. Tercihi hiz degil, ozellikler belirler.
Redis onbellek disinda ne yapar?
Kuyruk, pub/sub mesajlasma, sayac, gercek zamanli siralama tablosu, hiz limitleyici ve oturum deposu gibi pek cok senaryoda kullanilir. Bu yuzden cok amacli bir veri araci olarak gorulur.
Verim kalici mi kalir?
Memcached’te hayir; yeniden baslatmada tum veri silinir. Redis ise RDB anlik goruntu ve AOF gunlugu ile veriyi diske yazarak kalicilik saglayabilir.
WordPress icin hangisini secmeliyim?
Ikisi de object cache olarak kullanilir; ancak Redis daha yaygin ve esnektir. Sayfa onbellegi ile birlikte object cache kullanmak, yuksek trafikli WordPress sitelerinde performansi belirgin sekilde artirir.
Ikisini ayni anda kullanir miyim?
Genellikle biri secilir; cogu proje icin Redis tek basina yeterlidir. Cok ozel mimarilerde ikisi farkli amaclarla birlikte calisabilir, ancak bu istisnai bir tercihtir.
Redis gercekten tek is parcacikli mi?
Komut yurutme cekirdegi bilincli olarak tek is parcaciklidir, bu da islemleri atomik kilar. Ancak Redis 6.0 ile coklu is parcacikli ag girdi-cikti islemleri eklenmistir; pratikte tek cekirdek darbogazi buyuk olcude yumusamistir.
Redis lisansi degisti mi, hala acik kaynak mi?
2024’te Redis BSD’den SSPL/RSALv2’ye gecti, ardindan topluluk Valkey adli acik catallasmayi olusturdu. Redis 8 ile birlikte AGPLv3 acik kaynak lisansi da secenekler arasina eklendi. Bugun Redis birden fazla lisans secenegiyle dagitiliyor; Valkey ise bircok Linux dagiticisinda varsayilan olarak geliyor.
Valkey nedir, Redis’in yerini mi alir?
Valkey, Redis’in acik kaynak catallasmasidir ve komut seti ile API’si Redis ile buyuk olcude uyumludur. Bircok dagitimda Redis paketinin yerini almistir; cogu uygulamada kod degisikligi gerektirmeden calisir.
Hangi sunucu bu araclar icin uygundur?
Her ikisi de verileri bellekte tuttugu icin bol RAM’li bir VPS veya bulut sunucu idealdir. RAM miktari, onbellekte tutmak istediginiz veri hacmine gore secilmelidir.
Onbellek Icin Bol RAM’li Hizli Sunucu
Redis, Valkey veya Memcached ile uygulamanizi hizlandirin. Izmir veri merkezinde, all-flash donanim ve LiteSpeed altyapisiyla VPS ve bulut sunucu cozumleri Alastyr’da.





