İçindekiler
- 1 WordPress’te Nesne Önbelleği Neden Bu Kadar Kritik?
- 2 Redis ve Memcached’i Doğru Konumlamak: Ne Yapar, Ne Yapmaz?
- 3 Redis mi Memcached mi? WordPress İçin Hangi Senaryoda Hangisi?
- 4 Paylaşımlı Hosting’de WordPress Redis/Memcached Object Cache Kurulumu
- 5 VPS Üzerinde Redis/Memcached Kurulumu ve WordPress Entegrasyonu
- 5.1 1. VPS Ön Hazırlığı ve Güvenlik Notları
- 5.2 2. VPS’te Redis Kurulumu (Ubuntu/Debian Örneği)
- 5.3 3. VPS’te Memcached Kurulumu (Ubuntu/Debian Örneği)
- 5.4 4. PHP ve Web Sunucusu ile Entegrasyon
- 5.5 5. WordPress’te Redis Object Cache’i Etkinleştirme
- 5.6 6. WordPress’te Memcached Object Cache’i Etkinleştirme
- 6 TTL, Flush ve Sorun Giderme: Object Cache’i Sağlıklı Tutmak
- 7 Paylaşımlı Hosting’den VPS’e Geçerken Redis/Memcached Stratejisi
- 8 Hangi DCHost Ürününde Nasıl Konumlandırmalı?
- 9 Sonuç ve Sonraki Adımlar
WordPress’te Nesne Önbelleği Neden Bu Kadar Kritik?
WordPress performansını konuşurken çoğu zaman tema, eklentiler veya CDN ayarları masaya yatırılır. Oysa özellikle WooCommerce gibi yoğun veritabanı kullanan sitelerde esas yük, her sayfa isteğinde tekrar tekrar çalışan veritabanı sorguları ve PHP tarafındaki hesaplamalardır. İşte nesne önbelleği (object cache) tam bu noktada devreye girer.
Object cache, WordPress’in veritabanından okuduğu verileri (ayarlar, sorgu sonuçları, menüler, widget’lar vb.) RAM üzerinde kısa süreliğine saklar. Böylece aynı veri tekrar istendiğinde PHP’nin ve MySQL’in yorulmasına gerek kalmaz; cevap RAM’den, milisaniyeler içinde gelir. Özellikle:
- WooCommerce sepet/ödeme adımlarında,
- Yüksek trafik alan haber ve blog sitelerinde,
- Çok sayıda eklenti kullanan karmaşık projelerde
Redis veya Memcached ile doğru kurgulanmış bir object cache, TTFB’nin ciddi şekilde düşmesini, CPU yükünün hafiflemesini ve beklenmedik trafik dalgalarında sitenin çok daha sakin kalmasını sağlar.
Bu yazıda, hem paylaşımlı hosting hem de VPS senaryoları için WordPress’te Redis/Memcached object cache kurulumunu adım adım anlatacağız. DCHost altyapısında yıllardır yönettiğimiz WordPress ve WooCommerce projelerinde uyguladığımız pratikleri, sahada gördüğümüz tipik hataları ve güvenli ayar önerilerini net bir şekilde paylaşacağım.
Redis ve Memcached’i Doğru Konumlamak: Ne Yapar, Ne Yapmaz?
Önce kavramları netleştirelim; çünkü sayfa önbelleği (full page cache) ile nesne önbelleği çoğu zaman birbirine karışıyor.
Nesne Önbelleği (Object Cache) Nedir?
WordPress çekirdeği ve eklentiler, her istekte onlarca/sayıca yüzlerce veritabanı sorgusu yapabilir. Nesne önbelleği:
- Bu sorguların sonuçlarını ve PHP nesnelerini RAM’de saklar,
- Aynı veri kısa süre içinde tekrar lazım olduğunda MySQL’e gitmeden RAM’den döndürür,
- Özellikle
wp_options, menüler, sorgu sonuçları ve çeşitli konfigürasyonlar için büyük fark yaratır.
Yani object cache, PHP ve MySQL arasında hızlı bir tampon katman gibi çalışır.
Sayfa Önbelleği (Full Page Cache) ile Farkı
LiteSpeed Cache, Nginx FastCGI Cache, Varnish veya bir CDN HTML cache’i; bunların hepsi tam sayfa önbellek çözümleridir. Bunlar:
- Oluşturulmuş HTML çıktısını saklar,
- Bir sonraki istekte PHP’yi tamamen devre dışı bırakarak doğrudan HTML sunar.
Object cache ise HTML çıktıyı değil, WordPress’in iç verilerini (sorgu sonuçları, ayarlar vb.) önbelleğe alır. Dolayısıyla:
- Sayfa önbelleği yoksa bile object cache performans kazandırır,
- Sayfa önbelleği varsa bile, giriş yapmış kullanıcılar, sepet/ödeme gibi dinamik sayfalar için hala çok kritiktir.
Sayfa ve nesne önbelleği birbirini tamamlar; doğru kurgulandığında özellikle WooCommerce tarafında çok belirgin hız farkı görürsünüz. Nesne önbelleğe geçmeden önce veritabanınızı da gözden geçirmek isterseniz wp_options ve autoload şişmesini temizleme rehberimize göz atmanızda büyük fayda var.
Redis mi Memcached mi? WordPress İçin Hangi Senaryoda Hangisi?
Hem Redis hem Memcached RAM tabanlı önbellek sunucularıdır, ama yetenekleri ve ekosistemi farklıdır. Kısa, pratik bir karşılaştırma yapalım.
Redis’in Avantajları
- Kalıcı nesne önbelleği (Persistent): İstenirse disk üzerinde AOF/RDB ile veri tutabilir; sunucu yeniden başladığında cache tamamen sıfırlanmak zorunda değildir.
- Daha gelişmiş veri tipleri: Sadece key–value değil; list, set, hash gibi yapılar da destekler. Gelişmiş uygulamalarda faydalıdır.
- Güçlü izleme ve yönetim araçları:
redis-cli monitor,INFOkomutları ile ne olduğunu takip etmek kolaydır. - WordPress dünyasında çok yaygın ve destekli; birçok eklenti doğrudan Redis’i hedefleyerek geliştirilmiştir.
Memcached’in Avantajları
- Çok hafif ve basit bir protokole sahiptir; yıllardır kullanılan, oturmuş bir çözümdür.
- Sadece RAM üzerinde çalışır, veri kalıcılığı yoktur; bu bazı senaryolarda daha öngörülebilir davranış anlamına gelebilir.
- Bazı paylaşımlı hosting ortamlarında Redis yerine Memcached daha rahat sunulabiliyor.
WordPress ve WooCommerce İçin Önerilen Yol
Genel gözlemimiz şu yönde:
- Yeni projelerde ve özellikle WooCommerce gibi ağır yükte, Redis çoğunlukla daha başarılı sonuç veriyor.
- Sadece hafif bloglar ve basit sitelerde, veya sadece Memcached desteği olan ortamlarda Memcached gayet yeterli.
- Her iki çözüm de doğru kurulduğunda anlamlı hız artışı sağlar; kritik olan WordPress tarafındaki entegrasyon ve sunucu yapılandırmasıdır.
Konuya daha teknik ve derin bakmak isterseniz, WordPress ve WooCommerce için yaptığımız detaylı karşılaştırmayı Redis mi Memcached mi rehberimizde adım adım anlattık.
Paylaşımlı Hosting’de WordPress Redis/Memcached Object Cache Kurulumu
DCHost gibi modern altyapılarda paylaşımlı hosting paketleri, çoğu zaman Redis veya Memcached desteğini hazır olarak sunar. Sizin tarafta yapmanız gerekenler, büyük ölçüde cPanel ayarları + WordPress eklentisi + ufak wp-config.php düzenlemeleri ile sınırlıdır.
1. Sunucunuzda Redis/Memcached Desteğini Kontrol Edin
cPanel veya kullandığınız kontrol panelinde aşağıdaki alanları kontrol edin:
- PHP Extensions veya Select PHP Version ekranında
redisve/veyamemcachedeklentilerinin listede olup olmadığı, - Hosting yönetim panelinizde Redis/Memcached servis durumunu görebileceğiniz bir arayüzün bulunup bulunmadığı.
Eğer DCHost paylaşımlı hosting kullanıyorsanız, panelinizde Redis veya Memcached desteği konusunda emin olamıyorsanız destek talebi açarak sizin hesapta hangisinin aktif edilebildiğini sorabilirsiniz.
2. WordPress’te Gerekli Object Cache Eklentisini Kurun
Paylaşımlı hosting ortamında en pratik yol, test edilmiş ve yaygın kullanılan bir eklentiyle ilerlemektir. Örneğin:
- Redis için: Redis Object Cache (wordpress.org üzerinde yer alır),
- Memcached için: Memcached Object Cache benzeri bir eklenti.
Kurulum adımları:
- WordPress yönetim paneline giriş yapın (
/wp-admin). - Eklentiler > Yeni Ekle menüsüne gidin.
- Arama kutusuna “Redis Object Cache” veya “Memcached Object Cache” yazın.
- İlgili eklentiyi Yükle ve ardından Etkinleştir butonlarıyla aktif edin.
3. wp-config.php Üzerinde Temel Ayarları Yapın
Birçok object cache eklentisi wp-config.php’ye ekstra ayar koymadan çalışsa da, daha kontrollü bir yapı için bazı sabitleri (constant) tanımlamak faydalı olur.
FTP veya cPanel Dosya Yöneticisi ile sitenizin kök dizinindeki wp-config.php dosyasını açın ve aşağıdaki satırları /* That's all, stop editing! Happy publishing. */ satırının üstüne ekleyin:
define( 'WP_CACHE', true ); // Nesne & sayfa önbelleği için genel anahtar
// Redis kullanıyorsanız
// define( 'WP_REDIS_HOST', '127.0.0.1' );
// define( 'WP_REDIS_PORT', 6379 );
// define( 'WP_REDIS_DATABASE', 0 );
// define( 'WP_REDIS_TIMEOUT', 1 );
// define( 'WP_REDIS_READ_TIMEOUT', 1 );
// Memcached kullanıyorsanız (kullandığınız eklentinin dokümantasyonuna göre değişebilir)
// define( 'WP_MEMCACHED_SERVERS', array(
// 'default' => array( '127.0.0.1:11211' )
// ) );
Paylaşımlı hosting ortamlarında Redis/Memcached sunucusunun host ve port bilgisi her zaman “127.0.0.1” olmayabilir. DCHost üzerinde size özel atanan host/port bilgisini destek ekibimizden teyit etmenizde fayda var.
4. Eklenti Arayüzünden Bağlantıyı Test Edin
Redis Object Cache örneği üzerinden gidelim:
- Ayarlar > Redis veya Araçlar > Redis menüsüne girin (eklentinin menü konumuna göre).
- Test Connection veya benzeri testi çalıştırın.
- Bağlantı başarılıysa Enable Object Cache butonuna tıklayarak cache’i aktif edin.
Bu aşamada, wp-content klasörünüzde object-cache.php adında bir dosya oluşur. WordPress, bu dosya varsa nesne önbelleği için onu kullanır.
5. Basit Bir Performans Testi Yapın
Object cache’in işe yarayıp yaramadığını görmek için:
- GTmetrix, PageSpeed Insights veya WebPageTest ile sitenizi test edin,
- Özellikle First Byte Time (TTFB) ve Time to Interactive metriklerinde bir düşüş bekleyin.
Sunucu tarafındaki diğer optimizasyonların da bu sonuçlara etkisi olduğunu unutmayın. Sunucu taraflı WordPress optimizasyonunu daha kapsamlı ele aldığımız PHP-FPM, OPcache, Redis ve MySQL ayar rehberimize mutlaka göz atın.
VPS Üzerinde Redis/Memcached Kurulumu ve WordPress Entegrasyonu
VPS kullanıyorsanız eliniz çok daha serbest; kendi Redis/Memcached sunucunuzu kurup, güvenlik ve kaynak limitlerini ihtiyacınıza göre ayarlayabilirsiniz. Aşağıdaki örnekler Ubuntu/Debian tabanlı sistemler için; AlmaLinux/Rocky Linux gibi sistemlerde eşdeğer yum/dnf paketleri mevcuttur.
1. VPS Ön Hazırlığı ve Güvenlik Notları
- Redis ve Memcached’in yalnızca localhost’tan (127.0.0.1) dinlemesini sağlayın; doğrudan internete açmayın.
- VPS’iniz üzerinde temel güvenlik adımlarını (SSH sertleştirme, firewall vb.) tamamlamadıysanız, önce VPS sunucu güvenliği rehberimize göz atmanız iyi olur.
- Redis/Memcached için ayırdığınız RAM miktarını, toplam RAM’inize ve diğer servislerin ihtiyacına göre dikkatle hesaplayın.
2. VPS’te Redis Kurulumu (Ubuntu/Debian Örneği)
sudo apt update
sudo apt install redis-server php-redis -y
Kurulum sonrası Redis konfigürasyon dosyasını açın:
sudo nano /etc/redis/redis.conf
Aşağıdaki ayarları kontrol edin/değiştirin:
bind 127.0.0.1 ::1– Sadece localhost’tan bağlantı kabul etsin.protected-mode yes– Ek bir güvenlik katmanı olarak açık kalsın.supervised systemd– systemd ile uyumlu çalışması için.maxmemory 512mbgibi bir değer – Sunucudaki toplam RAM’e göre ayarlayın.maxmemory-policy allkeys-lru– Genelde WordPress için iyi çalışan bir tahliye politikasıdır.
Değişikliklerden sonra servisi yeniden başlatın:
sudo systemctl restart redis-server
sudo systemctl enable redis-server
Redis’in çalıştığını doğrulayın:
redis-cli PING
# Çıktı: PONG
3. VPS’te Memcached Kurulumu (Ubuntu/Debian Örneği)
sudo apt update
sudo apt install memcached php-memcached -y
Memcached ayar dosyasını açın:
sudo nano /etc/memcached.conf
Dikkat etmeniz gereken temel satırlar:
-l 127.0.0.1– Sadece localhost’a dinleme.-m 512– Memcached’in kullanabileceği maksimum RAM (MB cinsinden).-p 11211– Varsayılan port; değiştirmek isterseniz eklenti ayarlarında da aynı porta işaret etmelisiniz.
Servisi yeniden başlatın ve otomatik başlatmayı aktif edin:
sudo systemctl restart memcached
sudo systemctl enable memcached
4. PHP ve Web Sunucusu ile Entegrasyon
VPS’inizde PHP-FPM kullanıyorsanız, Redis/Memcached PHP eklentilerinin yüklü olduğunu doğrulamak için:
php -m | grep -E 'redis|memcached'
Çıktıda redis veya memcached görmelisiniz. Görmüyorsanız, doğru PHP sürümü için eklentiyi kurduğunuzdan emin olun (örneğin php8.2-redis gibi paketler). Ardından PHP-FPM ve web sunucunuzu (Nginx/Apache) yeniden başlatın:
sudo systemctl restart php8.2-fpm
sudo systemctl restart nginx
PHP-FPM ayarlarını doğru yapmak için detaylı hesaplama ve örnekler arıyorsanız, WordPress ve WooCommerce için PHP-FPM ayar rehberimizi mutlaka inceleyin.
5. WordPress’te Redis Object Cache’i Etkinleştirme
Artık sunucu tarafı hazır, WordPress’e dönelim. Adımlar, paylaşımlı hostingte anlattığımızla çok benzer:
- WordPress’e giriş yapın.
- Eklentiler > Yeni Ekle üzerinden Redis Object Cache eklentisini yükleyin ve etkinleştirin.
wp-config.phpiçinde aşağıdaki sabitleri ekleyin:
define( 'WP_CACHE', true );
define( 'WP_REDIS_HOST', '127.0.0.1' );
define( 'WP_REDIS_PORT', 6379 );
define( 'WP_REDIS_DATABASE', 0 );
define( 'WP_REDIS_TIMEOUT', 1 );
define( 'WP_REDIS_READ_TIMEOUT', 1 );
- WordPress panelinde Redis eklentisinin ayar sayfasına gidin.
- Test Connection ile bağlantıyı doğrulayın.
- Enable Object Cache ile nesne önbelleğini aktif edin.
Daha gelişmiş kurulumlarda (Redis Sentinel, ayrı cache sunucuları, AOF/RDB stratejileri vb.) WordPress nesne önbelleğinde Redis’i ayağa kaldırmanın sırlarını anlattığımız yazımızda üretim senaryolarına uygun mimari detaylarını bulabilirsiniz.
6. WordPress’te Memcached Object Cache’i Etkinleştirme
Eğer Redis yerine Memcached kullanmak istiyorsanız:
- WordPress’te uygun bir Memcached Object Cache eklentisi yükleyin ve etkinleştirin.
wp-config.phpiçine eklentinin dokümantasyonuna uygun sabitleri ekleyin, örneğin:
define( 'WP_CACHE', true );
define( 'WP_MEMCACHED_SERVERS', array(
'default' => array( '127.0.0.1:11211' )
) );
- Eklenti ayar sayfasından bağlantı testini çalıştırın.
- Gerekiyorsa TTL veya namespace ayarlarını yapın.
TTL, Flush ve Sorun Giderme: Object Cache’i Sağlıklı Tutmak
Nesne önbelleği kurulduktan sonra iş bitmiyor; özellikle WooCommerce gibi dinamik yapılarda TTL (yaşam süresi), cache flush ve sorun giderme adımlarını da planlamanız gerekiyor.
TTL (Time To Live) Ayarları
Object cache eklentileri genellikle şu alanlarda TTL belirlemenize izin verir:
- Genel cache ömrü (örneğin 3600 saniye = 1 saat),
- Belirli gruplar için özel TTL (örneğin WooCommerce sepet verileri için daha kısa),
- Admin alanı için farklı TTL.
Genel tavsiye:
- Okuma ağırlıklı blog/haber sitelerinde TTL’yi uzun tutun (örneğin 1–6 saat).
- Sık değişen fiyat/stock bilgisinde daha kısa TTL veya ilgili gruplar için farklı TTL kullanın.
Cache Flush Ne Zaman Gerekir?
Şu durumlarda object cache’i manuel boşaltmak (flush) gerekebilir:
- Yeni bir eklenti kurdunuz ve beklenmedik davranışlar görüyorsunuz,
- Büyük tasarım/deploy değişikliklerinde,
- Veritabanına doğrudan SQL ile müdahale ettiğiniz senaryolarda.
Çoğu Redis/Memcached eklentisi, ayar sayfasında bir Flush Cache butonu sunar. VPS tarafında Redis’i tamamen sıfırlamak isterseniz test ortamlarında:
redis-cli FLUSHALL
komutunu kullanabilirsiniz; fakat üretim ortamında çok dikkatli olun, ilgili veritabanını veya namespace’i hedeflediğinizden emin olun.
“Object Cache Kurduk Ama Site Hızlanmadı” Diyorsanız
Nesne önbelleği mucize değil; bazı durumlarda etkisi sınırlı görünebilir. En sık karşılaştığımız sebepler:
- Veritabanı zaten küçük, sorgular hızlı; asıl problem PHP-FPM konfigürasyonu veya disk I/O dar boğazı,
- Çok ağır ve kötü yazılmış bir tema/eklenti,
- Sayfa önbelleği (full page cache) hiç yok, her istekte PHP tamamen çalışmak zorunda,
- CDN veya HTTP/2/3 gibi katmanlar doğru ayarlanmamış.
Böyle durumlarda, nesne önbelleğini genel optimizasyon planının bir parçası olarak görmek gerekir. Sunucu tarafı bottleneck’leri tespit etmek için CPU, IO ve MySQL dar boğazı teşhis rehberimizi inceleyebilirsiniz.
Paylaşımlı Hosting’den VPS’e Geçerken Redis/Memcached Stratejisi
Birçok müşteri, ilk etapta paylaşımlı hosting üzerinde Redis/Memcached kullanmaya başlıyor; trafik ve iş yükü büyüdükçe VPS’e geçiş gündeme geliyor. DCHost olarak bu geçişlerde en çok dikkat ettiğimiz noktalar şunlar:
- Paylaşımlı ortamda kullandığınız Redis/Memcached eklentisinin, VPS üzerinde de sorunsuz çalışacak bir geçiş planının olması.
- VPS’te Redis/Memcached için ayıracağınız RAM miktarının, CPU ve disk I/O ile dengeli olması.
- Varsa çoklu sunucu veya ileride ayrı cache sunucusuna geçiş ihtiyacının baştan düşünülmesi.
Paylaşımlı ortamdan kendi VPS’inize taşınırken sadece object cache değil, DNS, e-posta, veritabanı ve dosya taşımayı da kapsayan uçtan uca bir plan yapmak istiyorsanız, paylaşımlı hosting’den VPS’e sorunsuz geçiş rehberimiz sizin için adım adım bir yol haritası sunuyor.
Hangi DCHost Ürününde Nasıl Konumlandırmalı?
Özetlemek gerekirse, DCHost tarafında tipik bir yol haritası şöyle görünür:
- Küçük kurumsal site / blog: Paylaşımlı hosting + Redis veya Memcached object cache + sayfa önbelleği (LiteSpeed Cache vb.).
- Büyüyen WooCommerce mağazası: VPS üzerinde Nginx/Apache + PHP-FPM + Redis object cache + tam sayfa cache ve CDN kombinasyonu.
- Çok kiracılı (multi-tenant) SaaS, yoğun trafik: Ayrı Redis/Memcached sunucusu, gerekirse Sentinel veya cluster mimarisi; bu noktada özel DCHost çözümleriyle mimari tasarıma birlikte bakmak genelde en sağlıklısı oluyor.
Object cache’i doğru kurduğunuzda, özellikle veritabanı yükü anlamlı biçimde hafifler; bu da hem daha akıcı bir kullanıcı deneyimi hem de kaynak kullanımının daha öngörülebilir olması demektir. Sunucu tarafı optimizasyon, ölçeklendirme ve güvenlik adımlarını birlikte planlamak için ihtiyaç duyarsanız DCHost ekibi olarak her zaman bir ticket uzağınızdayız.
Sonuç ve Sonraki Adımlar
WordPress’te Redis/Memcached ile nesne önbelleği kurmak, doğru yapıldığında en fazla karşılığını veren optimizasyon adımlarından biri. Özellikle veritabanı yoğun sitelerde, TTFB düşer, CPU rahatlar ve trafik dalgalanmalarında sitenizin ayakta kalma şansı ciddi şekilde artar.
Bu yazıda hem paylaşımlı hosting hem de VPS senaryosu için:
- Redis ve Memcached’in rolünü,
- cPanel ve WordPress eklentisi üzerinden temel kurulumu,
- VPS tarafında Redis/Memcached servislerinin nasıl güvenle ayağa kaldırılacağını,
- TTL, flush ve sorun giderme pratiklerini
adım adım ele aldık. Şimdi sırada, kendi sitenizde bu adımları uygulayıp gerçek dünyadaki etkisini ölçmek var. Sunucu tarafı optimizasyonu daha da ileri taşımak isterseniz, WordPress için sunucu tarafı optimizasyon rehberimiz ve WordPress yedekleme stratejileri yazımız ile performans + güvenlik ikilisini birlikte güçlendirebilirsiniz.
Eğer “Benim senaryom daha karmaşık, Redis cluster, ayrı veritabanı sunucusu gibi ihtiyaçlarım var” diyorsanız, DCHost üzerinde size özel VPS veya dedicated çözümleriyle mimarinizi birlikte tasarlayabiliriz. Mevcut sitenizin durumunu bizimle paylaşın; object cache ile nereden ne kadar kazanabileceğinizi, somut verilerle birlikte konuşalım.
