Sunucu İçi Önbellekleme: Redis, Memcached, Varnish ve Opcode Cache Rehberi

Sunucu İçi Önbellekleme: Redis, Memcached, Varnish ve Opcode Cache Rehberi - Corelux
1 Haz 2026
Paylaş:

Sunucu İçi Önbellekleme: Redis, Memcached, Varnish ve Opcode Cache Rehberi

Son Güncelleme: Mayıs 2026

Bu makalede sunucu içi önbellekleme (server-side caching) katmanlarının nasıl çalıştığını, Redis, Memcached, Varnish ve Opcode Cache gibi popüler çözümlerin farklarını ve hangi senaryoda hangisinin tercih edilmesi gerektiğini öğreneceksiniz. Makale boyunca pratik kurulum, konfigürasyon örnekleri ve gerçek dünyadan kullanım senaryoları bulacaksınız.

İçindekiler

Giriş

Önbellekleme (cache) sunucu ve uygulama performansını artırmanın temel yollarından biridir. Burada anlatılan çözümler farklı problem setlerine yönelik olup; bellek içi önbellek (in-memory cache), HTTP reverse proxy önbelleği ve opcode önbelleği (derlenmiş PHP kodunun saklanması) olarak üç ana kategoriye ayrılır. Her bir teknik, veri türüne, erişim sıklığına ve tutarlılık (consistency) gereksinimlerine göre avantaj sağlar.

Redis Nedir?

Tanım ve Temel Özellikler

Redis (Remote Dictionary Server) bellek içi anahtar-değer veritabanıdır. Yüksek performanslı okuma/yazma işlemleri için tasarlanmıştır ve kalıcılık (persistence) seçenekleri sayesinde veriyi diske de yazabilir. Redis, TTL (time-to-live) yani anahtar yaşam süresi desteği ile kısa süreli önbellekleme için ideal bir çözümdür.

Kullanım Senaryoları

  • Oturum Yönetimi: Kullanıcı oturumlarını (sessions) merkezi ve hızlı bir şekilde saklama.
  • Sayaç ve Kuyruklar: Gerçek zamanlı sayaçlar, pub/sub ve iş kuyruğu (queue) uygulamaları.
  • Cache Katmanı: Veri tabanı sorgularının sonuçlarını önbelleğe alarak RPS (requests per second) artırma.

Memcached Nedir?

Tanım ve Temel Özellikler

Memcached hafif bir bellek içi anahtar-değer önbelleğidir. Basit API'si ve düşük gecikmesi (latency) ile sık erişilen verilerin kısa süreli saklanması için uygundur. Memcached kalıcılık sunmaz; sunucu yeniden başlatıldığında veri kaybolur. Bu yüzden volatile (uçucu) önbellek senaryolarında tercih edilir.

Kullanım Senaryoları

  • Sayfa Parçaları: Dinamik sayfa bölümlerinin (fragment) önbelleklemesi.
  • DB Sorgu Sonuçları: Ağır sorgu sonuçlarının geçici olarak saklanması.
  • Basit Anahtar-Değer: Oturum dışı, kısa ömürlü veri saklama.

Varnish Nedir?

Tanım ve Temel Özellikler

Varnish bir HTTP reverse proxy önbelleğidir. Web sunucusu (origin) ile kullanıcı (client) arasına yerleştirilir ve HTTP yanıtlarını önbelleğe alarak statik ve dinamik içerik için büyük performans kazanımları sağlar. Varnish Configuration Language (VCL) ile kuralları özelleştirebilirsiniz.

Kullanım Senaryoları

  • Statik İçerik Önbellekleme: CSS, JS, resim ve sayfa çıktılarının önbelleklemesi.
  • Yük Dengeleme: Basit istek yönlendirme ve sağlık kontrolü.
  • Cache Invalidasyon: İçerik değiştiğinde Varnish’i temizleme (purge) işlemleri.

Opcode Cache (Önbellek) Nedir?

Tanım ve Temel Özellikler

Opcode Cache (ör. PHP Opcache), PHP gibi yorumlanan dillerde kaynak kodun derlenmiş ara kodunu (opcode) bellekte tutarak her istekte tekrar derlemeyi engeller. Bu, CPU kullanımını azaltır ve uygulama tepki süresini iyileştirir.

PHP için Örnek Ayar

; php.ini içinde önerilen opcache ayarları
opcache.enable=1
opcache.memory_consumption=256
opcache.interned_strings_buffer=16
opcache.max_accelerated_files=10000
opcache.revalidate_freq=2

Karşılaştırma Tablosu

Özellik Redis Memcached Varnish Opcode Cache
Tip In-memory DB In-memory KV Cache HTTP Reverse Proxy Dil Seviyesi Opcode ÖnBellek
Kalıcılık Evet (opsiyonel) Hayır Hayır (HTTP yanıtı önbelleklenir) Hayır (geçici)
Veri Yapıları String, List, Set, Hash, Sorted Set Sadece String (KV) HTTP Response Derlenmiş PHP kodu
En İyi Kullanım Gerçek zamanlı veri, kuyruk, oturum Basit cache, fragment caching Sayfa cache, CDN alternatifi/öncüsü PHP uygulamaları için genel hız artışı

Kurulum ve Örnek Konfigürasyonlar

Redis (Ubuntu) Hızlı Kurulum

sudo apt update
sudo apt install -y redis-server
sudo systemctl enable --now redis-server
# redis-cli ile test
redis-cli ping

Not: Redis’in production ortamında requirepass veya ACL kullanarak erişimi kısıtlayın ve mümkünse sadece özel ağ (private network) ile erişime açın.

Memcached (Ubuntu) Kurulum

sudo apt update
sudo apt install -y memcached libmemcached-tools
sudo systemctl enable --now memcached
# memcached-tool ile stats
memcached-tool 127.0.0.1:11211 stats

Varnish Basit VCL Örneği

vcl 4.0;
backend default { .host = "127.0.0.1"; .port = "8080"; }
sub vcl_recv {
  if (req.method == "PURGE") {
    return (synth(200, "Purged"));
  }
}

Konsepte dikkat: Varnish doğrudan HTTPS dinlemez; TLS sonlandırmayı nginx veya bir load balancer üzerinde yapıp Varnish’e HTTP ile yönlendirirsiniz.

PHP ile Redis Kullanımı (Örnek)

connect('127.0.0.1', 6379);
$redis->setex('user_count', 60, 123);
echo $redis->get('user_count');

En İyi Uygulamalar

  • Çok Katmanlı Önbellek: Opcode cache + in-memory cache (Redis/Memcached) + HTTP cache (Varnish/CDN) kombinasyonu en iyi sonuçları verir.
  • TTL Stratejisi: Anahtarların yaşam süresini uygulama ihtiyaçlarına göre belirleyin; çok uzun TTL stale (bayat) veri yaratır.
  • Cache Invalidation: İçerik değişiminde uygun invalidasyon (purge) mekanizması kurun. Varnish için ban veya purge, Redis için anahtar silme işlemi kullanın.
  • Gözlemleme ve İzleme: Hit/Miss oranlarını, bellek kullanımını ve gecikmeyi (latency) izleyin. Prometheus, Grafana gibi araçlarla metrik toplayın.
  • Güvenlik: Cache sunucularını doğrudan internete açmayın; yalnızca uygulama sunucularından erişim izni verin.

Sıkça Sorulan Sorular

Redis mi Memcached mi seçmeliyim?

Genel kural: Veri yapıları, kalıcılık veya gelişmiş işlevsellik (pub/sub, liste, set) gerekiyorsa Redis; basit, düşük gecikmeli KV cache gerekiyorsa Memcached tercih edilir.

Varnish her web sitesi için gerekli mi?

Hayır. Eğer siteniz çoğunlukla API çağrıları yapıyorsa veya dinamik, kişiselleştirilmiş içerik yoğun ise Varnish’in faydası sınırlı olabilir. Ancak statik/dinamik karışımı sitelerde büyük performans artışı sağlar.

Opcode cache ile Redis aynı işi yapar mı?

Hayır. Opcode cache uygulama kodunun derlenmiş halini saklarken, Redis uygulama verisini (ör. sorgu sonucu, oturum) saklar. İkisi birbirini tamamlar.

Cache tutarlılığı (consistency) nasıl sağlanır?

Write-through, write-behind veya explicit invalidation stratejileri kullanın. Kritik veriler için önbellek yerine doğrudan veritabanı kullanmak daha güvenlidir.

Cache sunucularını Corelux altyapısında hangi hizmetle kullanmalıyım?

Gelişmiş cache ihtiyaçları için Türkiye VPS Sunucu veya yüksek performans gerektiren durumlarda Bulut Sunucu tercih edebilirsiniz. Uygulama odaklı yönetilen çözümler için Coolify Hosting hizmetlerine göz atın.

Sonuç

Doğru önbellekleme stratejisi performansı ve maliyeti doğrudan etkiler. Genellikle en iyi sonuç opcode cache + in-memory cache (Redis/Memcached) + HTTP cache (Varnish/CDN) kombinasyonundan elde edilir. Kurulum ve ölçeklendirme ihtiyaçlarınıza göre Türkiye VPS, Bulut Sunucu veya Coolify Hosting çözümlerimizden faydalanabilirsiniz.

Eğer profesyonel destek isterseniz Corelux Hizmetler sayfamız üzerinden SSL, Yedekleme ve diğer yönetim hizmetleri hakkında bilgi alabilirsiniz.

Yazar

Boran BAR

Chat on WhatsApp