WordPress, yazılım ve IT üzerine notlar
Anasayfa » Sunucu & Linux » Redis nedir ve web uygulamanızı nasıl hızlandırır? Kurulum, güvenlik ve WordPress ile kullanım

Redis nedir ve web uygulamanızı nasıl hızlandırır? Kurulum, güvenlik ve WordPress ile kullanım

İçindekiler
  1. Ne için kullanılır?
  2. Kurulum
  3. Güvenlik: En önemli kısım
  4. Bellek sınırı ve tahliye politikası
  5. WordPress'te nesne önbelleği
  6. Fark ne kadar olur?
  7. Sorun giderme

Redis, verileri bellekte (RAM) tutan son derece hızlı bir anahtar-değer veri deposudur. Diskteki bir veritabanından veri okumak milisaniyeler sürebilirken, Redis'ten okumak genellikle mikrosaniyeler düzeyindedir. Bu hız, onu web uygulamalarında önbellek olarak kullanmak için ideal kılar.

Ne için kullanılır?

  • Nesne önbelleği: Ağır veritabanı sorgularının sonuçlarını saklamak.
  • Oturum (session) deposu: PHP oturumlarını dosya sistemi yerine Redis'te tutmak. Birden fazla web sunucusu aynı oturumlara erişebilir.
  • Kuyruklar: E-posta gönderimi ya da görsel işleme gibi arka plan işleri için iş kuyruğu.
  • Sayaçlar ve istek sınırlama: "Bu IP son bir dakikada kaç istek yaptı?" gibi hızlı sayımlar.
  • Liderlik tabloları, gerçek zamanlı istatistikler.

Redis bu işleri yapmak için basit anahtar-değer çiftlerinin yanında listeler, kümeler, sıralı kümeler ve hash'ler gibi veri yapıları sunar.

Kurulum

dnf install redis           # RHEL / AlmaLinux 9
apt install redis-server    # Debian / Ubuntu
systemctl enable --now redis
redis-cli ping

PONG cevabı geliyorsa Redis çalışıyor.

Not: Redis'in lisansı 2024'te değişti ve bazı dağıtımlar bunun üzerine, Redis ile uyumlu açık kaynak bir çatal (fork) olan Valkey'i sunmaya başladı. Uygulamalar açısından ikisi büyük ölçüde aynı şekilde kullanılır; aşağıdaki ayarlar ikisi için de geçerlidir.

Güvenlik: En önemli kısım

Şifresiz ve internete açık Redis sunucuları, sunucuların ele geçirilmesinin bilinen ve otomatik olarak istismar edilen yollarından biridir. Kurulumdan hemen sonra /etc/redis/redis.conf (bazı dağıtımlarda /etc/redis.conf) dosyasında şunları kontrol edin:

1. Yalnızca yerel adreste dinlesin:

bind 127.0.0.1 -::1
protected-mode yes

Redis ile uygulama aynı sunucudaysa, Redis'in dışarıya açık olmasına hiçbir sebep yoktur. Daha da iyisi, TCP yerine bir Unix soketi kullanmaktır:

port 0
unixsocket /run/redis/redis.sock
unixsocketperm 770

2. Şifre ya da ACL tanımlayın:

requirepass cok-uzun-ve-rastgele-bir-sifre

Redis 6 ve sonrası, farklı uygulamalara farklı yetkiler veren kullanıcı tabanlı erişim listelerini (ACL) de destekler.

3. Güvenlik duvarında 6379 portunu kapalı tutun. Birden fazla sunucu Redis'e erişecekse, yalnızca o sunucuların IP adreslerine izin verin ya da bağlantıyı bir VPN üzerinden kurun.

Bellek sınırı ve tahliye politikası

Redis bellekte çalıştığı için, sınır konmazsa sunucunun bütün belleğini tüketebilir. Önbellek olarak kullanıyorsanız mutlaka bir sınır ve tahliye politikası belirleyin:

maxmemory 256mb
maxmemory-policy allkeys-lru

allkeys-lru, bellek dolduğunda en uzun süredir kullanılmayan anahtarları silerek yer açar. Saf bir önbellek için en uygun politikadır. Redis'i aynı zamanda kuyruk ya da kalıcı veri için kullanıyorsanız, o verilerin silinmemesi için volatile-lru gibi yalnızca süresi tanımlanmış anahtarları silen bir politika seçin ya da ayrı bir Redis örneği kullanın.

WordPress'te nesne önbelleği

WordPress'in kendi içinde bir nesne önbelleği vardır, ama varsayılan olarak kalıcı değildir: Yalnızca tek bir sayfa yüklemesi boyunca bellekte tutulur ve istek bitince kaybolur. Bir sonraki ziyarette aynı ayarlar, menüler ve sorgu sonuçları veritabanından tekrar okunur.

Redis ile bu önbellek kalıcı hâle gelir. Kurulum:

  1. Sunucuda PHP'nin Redis eklentisini kurun (php-redis ya da PECL ile redis).
  2. Redis Object Cache gibi bir eklenti kurun.
  3. wp-config.php dosyasına bağlantı bilgilerini ekleyin:
define( 'WP_REDIS_HOST', '127.0.0.1' );
define( 'WP_REDIS_PORT', 6379 );
define( 'WP_REDIS_PASSWORD', 'cok-uzun-ve-rastgele-bir-sifre' );
define( 'WP_REDIS_PREFIX', 'site1:' );
define( 'WP_REDIS_DATABASE', 0 );
  1. Eklentinin ayarlar sayfasından önbelleği etkinleştirin. Ya da WP-CLI ile:
wp redis enable
wp redis status

WP_REDIS_PREFIX satırına dikkat edin. Aynı Redis sunucusunu birden fazla WordPress sitesi kullanıyorsa, her siteye farklı bir önek verin. Aksi hâlde sitelerin önbellekleri birbirine karışır ve bir sitede başka bir sitenin menüsü görünebilir.

Fark ne kadar olur?

Bu, sitenin yapısına bağlıdır:

  • Sayfa önbelleği olan basit bir blogda ziyaretçilerin çoğu zaten önbellekten statik HTML alır. Redis'in etkisi en çok yönetim panelinde ve önbelleğe alınmayan sayfalarda hissedilir.
  • WooCommerce mağazaları, üyelik siteleri ve forumlar gibi sayfa önbelleğinin sınırlı kullanılabildiği dinamik sitelerde fark çok belirgin olabilir. Sayfa başına veritabanı sorgu sayısı ciddi şekilde düşer.

Ölçmek için önce ve sonra Query Monitor eklentisiyle sayfa başına sorgu sayısına ve sayfa oluşturma süresine bakın.

Sorun giderme

redis-cli -a 'sifre' info stats | grep -E "keyspace_hits|keyspace_misses"
redis-cli -a 'sifre' info memory | grep used_memory_human

İsabet (hit) oranı yüksekse önbellek işini yapıyor demektir. Bir şey ters gittiğinde, örneğin bir ayar değiştiği hâlde eski değer görünüyorsa, önbelleği temizlemek çoğu zaman çözer:

wp cache flush

Redis'i doğru ayarlamak yarım saat sürer: yerel adreste dinlesin, şifresi olsun, bellek sınırı konsun. Bu üç adım atıldığında, sunucunuzdaki en hızlı ve en sorunsuz bileşenlerden biri olur.

Tezcan Kabakçı
Hosting teknik destek uzmanı ve WordPress uzmanı. 2024'ten beri bir hosting şirketinde teknik destek bölümünde çalışıyor; WordPress, DNS ve e-posta sorunlarını her gün yakından görüyor. YouTube kanalı.
Bu yazı 6 Ağustos 2026 tarihinde Sunucu & Linux kategorisinde yayınlandı.
Yeni yazılar e-postanıza gelsin

Ayda birkaç e-posta; istediğiniz an tek tıkla ayrılabilirsiniz.

Videolu anlatımlar YouTube'da
Sunucu ve WordPress sorunlarını kısa videolarla anlattığım kanala abone olabilirsiniz. ▶ Kanala abone ol

Yorumlar

Henüz yorum yok. İlk yorumu siz yazın.

Yorum yazın

Yorumlar onaylandıktan sonra yayımlanır. Bağlantı içeren yorumlar spam olarak değerlendirilebilir.