Merhaba değerli sistem yöneticileri ve WordPress tutkunları,
Web sitelerinin hızı, hem kullanıcı deneyimi hem de arama motoru optimizasyonu (SEO) için kritik bir faktördür. Özellikle dinamik yapısıyla bilinen WordPress siteleri, veritabanı sorguları ve PHP işlemleri nedeniyle zaman zaman performans sorunları yaşayabilir. İşte bu noktada güçlü bir önbellekleme çözümü olan Redis devreye girer.
Bu teknik blog yazısında, WordPress sitenizi Redis nesne önbellekleme ile nasıl hızlandıracağınızı adım adım ele alacağız. Amacımız, veritabanı yükünü azaltmak, sayfa yükleme sürelerini kısaltmak ve genel site performansını artırmaktır.
Redis Nedir ve Neden WordPress İçin Önemlidir?
Redis (Remote Dictionary Server), anahtar-değer tabanlı, açık kaynaklı, bellek içi bir veri yapısı deposudur. Genellikle bir veritabanı, önbellek ve mesaj aracısı olarak kullanılır. Redis’in en büyük avantajı, verileri diske yazmak yerine RAM’de tutması ve bu sayede olağanüstü hızlı okuma/yazma işlemleri sunmasıdır.
WordPress bağlamında Redis, genellikle tam sayfa önbelleklemeden ziyade nesne önbelleklemesi için kullanılır. WordPress, her sayfa yüklemesinde birçok veritabanı sorgusu yapar (yazı detayları, yorumlar, menüler, ayarlar, kullanıcı bilgileri vb.). Redis, bu sorgu sonuçlarını (yani “nesneleri”) belleğinde saklayarak, aynı verilerin tekrar sorgulanması gerektiğinde doğrudan RAM’den sunulmasını sağlar. Bu, MySQL/MariaDB gibi veritabanı sunucunuzdaki yükü önemli ölçüde azaltır ve yanıt sürelerini dramatik bir şekilde iyileştirir.
Başlamadan Önce: Gerekli Önkoşullar
Bu rehberi uygulamadan önce aşağıdaki önkoşullara sahip olduğunuzdan emin olun:
- Aktif bir WordPress kurulumu.
- Sunucunuza SSH erişimi (root veya sudo yetkileriyle).
- Sunucunuzda yeterli boş RAM.
Adım Adım Kurulum ve Yapılandırma
Şimdi, Redis’i sunucunuza kurma ve WordPress ile entegre etme adımlarına geçelim.
1. Redis Sunucusunu Kurma
Öncelikle, sunucunuzda Redis sunucusunu kurmanız gerekmektedir. Çoğu Linux dağıtımında bu işlem oldukça basittir.
Debian/Ubuntu tabanlı sistemler için:
sudo apt update
sudo apt install redis-server
sudo systemctl enable redis-server
sudo systemctl start redis-server
CentOS/RHEL tabanlı sistemler için:
sudo yum install epel-release
sudo yum update
sudo yum install redis
sudo systemctl enable redis
sudo systemctl start redis
Kurulumdan sonra Redis’in çalıştığını kontrol edebilirsiniz:
sudo systemctl status redis-server
Çıktıda “active (running)” ifadesini görmeniz gerekir.
2. PHP Redis Eklentisini Yükleme
WordPress’in Redis sunucusu ile iletişim kurabilmesi için PHP’nin Redis uzantısına ihtiyacı vardır. PHP versiyonunuza uygun olan uzantıyı yüklemeniz gerekir.
Debian/Ubuntu tabanlı sistemler için (PHP 7.4 örneği):
sudo apt install php7.4-redis # PHP versiyonunuza göre güncelleyin (örn: php8.1-redis)
sudo systemctl restart apache2 # Apache kullanıyorsanız
sudo systemctl restart nginx # Nginx kullanıyorsanız
sudo systemctl restart php7.4-fpm # PHP-FPM kullanıyorsanız (versiyonu güncelleyin)
CentOS/RHEL tabanlı sistemler için (PHP 7.4 örneği):
sudo yum install php-pecl-redis # veya php-redis
sudo systemctl restart httpd # Apache kullanıyorsanız
sudo systemctl restart nginx # Nginx kullanıyorsanız
sudo systemctl restart php-fpm # PHP-FPM kullanıyorsanız
PHP uzantısının başarıyla yüklendiğini doğrulamak için bir phpinfo() dosyası oluşturabilir veya SSH üzerinden aşağıdaki komutu çalıştırabilirsiniz:
php -m | grep redis
Eğer “redis” çıktısını görürseniz, uzantı başarıyla yüklenmiştir.
3. WordPress’i Redis ile Yapılandırma
Şimdi WordPress’i Redis’i kullanacak şekilde yapılandıracağız. Bunun için en kolay yol, bir WordPress eklentisi kullanmaktır. Piyasadaki en popüler ve güvenilir eklentilerden biri olan “Redis Object Cache” (Till Krüss tarafından) eklentisini önereceğiz.
a. Redis Object Cache Eklentisini Kurma:
- WordPress yönetim panelinize giriş yapın.
- “Eklentiler” -> “Yeni Ekle” bölümüne gidin.
- Arama çubuğuna “Redis Object Cache” yazın.
- Till Krüss tarafından geliştirilen eklentiyi bulun ve “Şimdi Kur” butonuna tıklayın.
- Kurulum tamamlandıktan sonra “Etkinleştir” butonuna tıklayın.
b. wp-config.php Dosyasını Düzenleme:
Eklentinin düzgün çalışabilmesi için wp-config.php dosyanıza bazı tanımlamalar eklemeniz gerekmektedir. Bu dosyayı FTP veya SSH/SFTP üzerinden düzenleyebilirsiniz. Dosyanın en üstüne, define('ABSPATH', DIR . '/'); satırının hemen önüne veya başka bir tanımlama öncesine aşağıdaki satırları ekleyin:
define('WP_CACHE', true);
define('REDIS_HOST', '127.0.0.1'); // Redis sunucunuzun IP adresi. Genellikle localhost için 127.0.0.1
define('REDIS_PORT', 6379); // Redis'in dinlediği port. Varsayılan 6379
define('REDIS_TIMEOUT', 1); // Saniye cinsinden bağlantı zaman aşımı
define('REDIS_READ_TIMEOUT', 1); // Saniye cinsinden okuma zaman aşımı
define('REDIS_DATABASE', 0); // WordPress kurulumunuz için kullanılacak Redis veritabanı indeksi (0-15 arası). Aynı Redis sunucusunda birden fazla WP sitesi çalıştırıyorsanız farklı değerler kullanın.
Eğer Redis sunucunuzda şifre belirlediyseniz (ki güvenlik için önerilir), aşağıdaki satırı da eklemeniz gerekir:
define('REDIS_PASSWORD', 'sizin_guclu_sifreniz'); // Redis sunucunuz için belirlediğiniz şifre
Değişiklikleri kaydedip wp-config.php dosyasını kapatın.
c. Önbelleği Etkinleştirme:
Eklentiyi kurup etkinleştirdikten ve wp-config.php dosyanızı güncelledikten sonra, WordPress yönetim panelinizdeki “Ayarlar” -> “Redis” bölümüne gidin. Burada “Durum” kısmının “Bağlı” olduğunu görmelisiniz. “Önbelleği Etkinleştir” (Enable Cache) butonuna tıklayın.
Başarılı bir şekilde etkinleştirildiğinde, durum “Etkin” olarak değişmeli ve eklenti wp-content dizininizde object-cache.php adında bir dosya oluşturmalıdır.
Doğrulama: Redis Önbellekleme Çalışıyor mu?
Redis önbelleklemenin doğru bir şekilde çalıştığını doğrulamak için birkaç yöntem vardır:
- Eklenti Durumu: WordPress yönetim panelindeki “Ayarlar” -> “Redis” sayfasında durumun “Etkin” ve “Bağlı” olduğunu kontrol edin.
- Redis CLI: Sunucunuza SSH ile bağlanarak Redis CLI üzerinden izleme yapabilirsiniz.
- Redis Bilgileri: Redis’in genel istatistiklerini kontrol edebilirsiniz.
redis-cli monitor
Bu komut, Redis sunucusuna gelen tüm komutları gerçek zamanlı olarak gösterir. WordPress sitenizde gezinirken burada çok sayıda `GET`, `SET`, `HGET`, `HSET` vb. komutlar görmelisiniz. Bu, WordPress’in Redis’i kullandığı anlamına gelir.
redis-cli info stats
Burada keyspace_hits (önbellek isabetleri) ve keyspace_misses (önbellek kaçırmaları) değerlerini göreceksiniz. Ziyaretçiler sitenizde gezinirken keyspace_hits değerinin arttığını gözlemlemelisiniz.
En İyi Uygulamalar ve Dikkat Edilmesi Gerekenler
- Bellek Yönetimi: Redis bellek içi bir depolama olduğu için, sunucunuzun yeterli belleğe sahip olduğundan emin olun. Redis’in ne kadar bellek tükettiğini
redis-cli info memorykomutuyla kontrol edebilirsiniz. - Kalıcılık (Persistence): Redis, verileri diske kaydetmek için RDB (Snapshotting) ve AOF (Append Only File) gibi kalıcılık seçenekleri sunar. Sunucu yeniden başlatıldığında önbelleğin kaybolmaması için kalıcılığı yapılandırmayı düşünebilirsiniz, ancak bu performans üzerinde küçük bir etkiye sahip olabilir. Genellikle nesne önbelleği için RDB yeterlidir veya hiç kalıcılık kullanılmaz.
- Güvenlik: Varsayılan Redis kurulumu genellikle güvenli değildir. Redis yapılandırma dosyasını (genellikle
/etc/redis/redis.conf) düzenleyerekbind 127.0.0.1ile sadece yerel bağlantılara izin verin verequirepassyönergesiyle güçlü bir şifre belirleyin. - İzleme: Redis performansını düzenli olarak izleyin. Sunucu kaynakları (CPU, RAM) ve Redis istatistikleri (isabet/kaçırma oranları) hakkında bilgi sahibi olmak, olası sorunları önceden tespit etmenizi sağlar.
- Tam Sayfa Önbellekleme ile Birlikte Kullanım: Redis object caching, tek başına bir sihirli değnek değildir. Genellikle Nginx FastCGI Cache, Varnish veya WP Rocket, LiteSpeed Cache gibi tam sayfa önbellekleme eklentileriyle birlikte kullanılarak en iyi performansı sağlar. Redis, veritabanı katmanında performansı artırırken, tam sayfa önbellekleme statik sayfaları sunarak son kullanıcıya ulaşan içeriği hızlandırır.
Sonuç
Redis nesne önbellekleme, WordPress sitenizin performansını artırmak için güçlü ve etkili bir yöntemdir. Veritabanı yükünü azaltarak sunucunuzun daha verimli çalışmasını sağlar ve ziyaretçileriniz için daha hızlı bir site deneyimi sunar. Bu rehberdeki adımları takip ederek, WordPress sitenizi Redis ile başarıyla entegre edebilir ve gözle görülür performans iyileştirmeleri elde edebilirsiniz.
Unutmayın, her sistem ve web sitesi benzersizdir. Bu yapılandırmaları kendi ortamınıza göre optimize etmek için testler yapmaktan ve ayarlamalar yapmaktan çekinmeyin. Başarılar dileriz!
