Kısa cevap: Redis, verileri diskte değil doğrudan RAM'de tutan, açık kaynaklı ve son derece hızlı bir anahtar-değer (key-value) veri deposudur. En çok önbellek (cache), oturum (session) yönetimi, kuyruk sistemleri ve anlık sayaçlar için kullanılır. Bir web sitesinin veritabanına giden sorguları Redis ile önbelleğe almak, sayfaların milisaniyeler içinde yanıt vermesini sağlar. Redis'i tam yetkiyle kurup yönetmenin en pratik yolu, root erişimli bir Linux sunucu kullanmaktır.

Bu rehberde Redis'in ne olduğunu, neden bu kadar hızlı olduğunu ve hangi projelerde fark yarattığını anlatıyoruz. Ardından Ubuntu ve AlmaLinux sunuculara adım adım kurulumu, Docker ile tek komutla çalıştırmayı, güvenlik ayarlarını, bellek ve kalıcılık yapılandırmasını gösteriyoruz. Son olarak da WordPress sitenizi Redis nesne önbelleğiyle nasıl hızlandıracağınızı açıklıyoruz. Komutları kopyalayıp doğrudan kullanabilirsiniz.

Redis Ne İşe Yarar ve Neden Bu Kadar Hızlı?

Redis'in temel görevi, sık ihtiyaç duyulan verileri çok hızlı erişilebilir bir yerde tutmaktır. Klasik bir veritabanı olan MySQL, verileri diskte saklar ve her sorguda disk okuması, sorgu planlaması ve tablo taraması gibi işlemler yapar. Redis ise veriyi baştan RAM'de tutar ve basit anahtar-değer erişimiyle getirir. RAM'e erişim, en hızlı diske erişimden bile kat kat hızlı olduğu için Redis'teki bir okuma işlemi genellikle bir milisaniyenin altında tamamlanır.

Redis'in hızının arkasında birkaç tasarım kararı vardır:

  • Bellek içi (in-memory) çalışma: Tüm veri RAM'de durur, disk yalnızca isteğe bağlı yedekleme için kullanılır.
  • Basit veri modeli: Karmaşık SQL sorguları yerine "şu anahtarın değerini getir" gibi doğrudan komutlar çalışır.
  • Verimli komut işleme: Komutlar tek bir ana iş parçacığında sırayla işlenir. Bu, kilitlenme ve çakışma maliyetlerini ortadan kaldırır ve her komutun atomik çalışmasını sağlar.
  • Hafif ağ protokolü: İstemci ile sunucu arasındaki iletişim son derece sade bir protokolle yapılır.

Bu yüzden Redis genellikle ana veritabanının yerine değil, önüne konur. Veritabanı kalıcı ve güvenilir kaynak olarak kalır; Redis ise sık okunan verileri önbellekte tutarak veritabanının yükünü hafifletir.

Redis bir veritabanı mı, önbellek mi?

İkisi de. Redis'i yalnızca önbellek olarak kullanabileceğiniz gibi, verileri diske kaydeden kalıcılık ayarlarıyla birincil veri deposu olarak da kullanabilirsiniz. Ancak pratikte en yaygın kullanım, MySQL veya PostgreSQL gibi bir veritabanının yanında önbellek ve oturum deposu olarak çalışmasıdır. Ana veritabanının nasıl çalıştığını MySQL nedir yazımızda ayrıntılı olarak anlattık.

Redis Veri Tipleri Nelerdir?

Redis'i basit bir anahtar-değer deposundan ayıran şey, değer olarak farklı veri yapılarını desteklemesidir. Her veri tipi farklı bir problemi çözer ve kendine özel komutlara sahiptir:

  • String: En temel tiptir. Metin, sayı veya serileştirilmiş bir JSON tutabilir. Önbellek kayıtları ve sayaçlar için kullanılır.
  • Hash: Bir nesnenin alanlarını tek anahtar altında tutar. Örneğin bir kullanıcının adı, e-postası ve son giriş zamanı.
  • List: Sıralı eleman listesidir. Basit iş kuyrukları ve son aktiviteler listesi için uygundur.
  • Set: Tekrarsız elemanlardan oluşan kümedir. Etiketler, benzersiz ziyaretçiler veya bir içeriği beğenen kullanıcılar için kullanılır.
  • Sorted Set: Her elemanın bir puanı olan sıralı kümedir. Liderlik tabloları ve en çok okunanlar listeleri bu yapıyla kurulur.
  • Stream: Zaman damgalı olay kayıtlarını tutan, kalıcı ve tüketici gruplarını destekleyen mesajlaşma yapısıdır.

Bunların yanında Redis, anahtarlara yaşam süresi (TTL) tanımlamanıza da izin verir. Bir anahtara 300 saniyelik TTL verdiğinizde, Redis bu anahtarı süre dolduğunda kendiliğinden siler. Önbellek kayıtlarının otomatik olarak yenilenmesi bu özellik sayesinde mümkün olur.

Redis Nerelerde Kullanılır? Gerçek Kullanım Senaryoları

Redis; web sitelerini hızlandırmaktan oturum yönetimine, kuyruk sistemlerinden hız sınırlamaya kadar çok geniş bir alanda kullanılır. En sık karşılaşılan senaryolar şunlardır:

  • Veritabanı sorgu önbelleği: Ürün listeleri, kategori sayfaları ve menüler gibi sık okunan ama nadiren değişen sonuçlar Redis'te tutulur. Aynı sorgu ikinci kez geldiğinde veritabanına gidilmez.
  • WordPress ve WooCommerce nesne önbelleği: WordPress'in her sayfa yüklemesinde tekrar tekrar yaptığı veritabanı sorguları Redis'te saklanır. Yönetim paneli ve sepet gibi tam sayfa önbelleğe alınamayan bölümler belirgin şekilde hızlanır.
  • Oturum (session) yönetimi: Kullanıcı oturumları Redis'te tutulduğunda birden fazla sunucu aynı oturum bilgisine erişebilir. Yük dengelemeli yapılarda bu bir zorunluluktur.
  • İş kuyrukları: E-posta gönderimi, görsel işleme ve fatura üretimi gibi uzun süren işler bir kuyruğa atılır ve arka planda işlenir. Laravel, Django ve Node.js gibi popüler çatıların kuyruk sistemleri Redis'i doğrudan destekler.
  • Hız sınırlama (rate limiting): Bir IP adresinin dakikada kaç istek yaptığı Redis sayaçlarıyla takip edilir. Giriş sayfalarına yönelik kaba kuvvet saldırıları ve API kötüye kullanımı bu yöntemle engellenir.
  • Anlık sayaçlar ve liderlik tabloları: Görüntülenme sayıları, oyun skorları ve en çok satanlar listeleri, veritabanını yormadan anlık olarak güncellenir.
  • Gerçek zamanlı mesajlaşma: Redis'in yayınla-abone ol (Pub/Sub) özelliği, sohbet uygulamaları ve canlı bildirimler için hafif bir mesajlaşma altyapısı sunar.
  • Botlar ve otomasyon araçları: Telegram ve Discord botları ile n8n gibi otomasyon araçları, durum bilgisi ve kuyruk yönetimi için sıklıkla Redis kullanır.

Sitenizin yavaş açılmasının ana sebebi veritabanı sorguları ise Redis en etkili çözümlerden biridir. Yavaşlığın diğer olası sebeplerini WordPress sitem neden yavaşladı yazımızda adım adım inceledik.

Redis ile Memcached ve MySQL Arasındaki Fark Nedir?

Redis ile Memcached'in ikisi de bellek içi önbellek sistemidir. Aralarındaki temel fark şudur: Memcached yalnızca basit metin değerleri tutar ve kalıcılık sunmaz; Redis ise zengin veri tiplerini, diske kaydetmeyi, kopyalamayı (replikasyon) ve kuyruk gibi gelişmiş özellikleri destekler. MySQL ise kalıcı ve ilişkisel bir veritabanıdır; Redis'in rakibi değil, tamamlayıcısıdır.

ÖzellikRedisMemcachedMySQL Verinin tutulduğu yerRAM (isteğe bağlı diske yedekleme)Yalnızca RAMDisk (RAM'de önbellekleme ile) Veri modeliAnahtar-değer ve zengin veri tipleriBasit anahtar-değerİlişkisel tablolar Okuma hızıÇok yüksekÇok yüksekSorguya ve indekse göre değişir KalıcılıkVar (RDB ve AOF)Yok, yeniden başlatmada veri silinirTam kalıcı Veri tipleriString, hash, list, set, sorted set, streamYalnızca stringSQL veri tipleri Karmaşık sorguHayır, anahtar tabanlı erişimHayırEvet, SQL ile birleştirme ve filtreleme Kuyruk ve Pub/SubVarYokDoğal olarak yok ReplikasyonVarDoğal olarak yokVar Tipik rolÖnbellek, oturum, kuyruk, sayaçBasit önbellekAna veri deposu

Yeni bir projede önbellek seçerken Redis genellikle daha esnek tercihtir, çünkü önbellek ihtiyacının yanında oturum ve kuyruk ihtiyaçlarını da aynı servisle karşılar. Memcached ise çok basit, yalnızca önbellek gereken ve eski sistemlerle uyumluluğun önemli olduğu senaryolarda hâlâ tercih edilir.

Redis'i Nerede Çalıştırmalısınız?

Redis'i kendi başınıza kurup yapılandırmak için root erişimine ve size ayrılmış RAM'e ihtiyacınız vardır. Paylaşımlı hosting ortamlarında kendi Redis servisinizi kuramazsınız; bu ortamlarda Redis desteği ancak hosting sağlayıcısı tarafından sunuluyorsa kullanılabilir. Tam kontrol için Linux tabanlı bir sanal veya fiziksel sunucu gerekir.

Redis'in tükettiği ana kaynak RAM'dir. Bu yüzden sunucu seçerken işlemciden önce bellek miktarına bakmalısınız. Aşağıdaki tablo yaygın senaryolar için başlangıç noktası verir:

SenaryoRedis'e ayrılacak bellekÖnerilen toplam sunucu RAM'i Tek WordPress sitesi, nesne önbelleği128–256 MB2–4 GB WooCommerce mağazası, önbellek ve oturum256–512 MB4–8 GB Birkaç site veya API, önbellek ve kuyruk512 MB – 1 GB8 GB Yoğun trafikli uygulama, çok sayıda kuyruk ve oturum2 GB ve üzeri16 GB ve üzeri

Redis'e ayıracağınız bellek, sunucunun toplam RAM'inin yalnızca bir bölümü olmalıdır. Aynı sunucuda web sunucusu, PHP ve veritabanı da çalışacağı için Redis'e tüm belleği vermek sistemin bellek yetersizliğinden kilitlenmesine yol açabilir. Birden fazla servisi aynı anda çalıştıracaksanız, işlemci ve belleği size ayrılmış bir VDS sunucu tutarlı bir performans sağlar.

Redis Kurulumu Öncesi Kontrol Listesi

Kuruluma başlamadan önce aşağıdaki maddeleri kontrol etmek, sonradan karşılaşacağınız güvenlik ve performans sorunlarının çoğunu baştan önler:

  • ☐ Sunucunuzda güncel bir Linux dağıtımı kurulu mu? (Ubuntu LTS, Debian, AlmaLinux veya Rocky Linux önerilir.)
  • ☐ Sunucuya SSH ile, sudo yetkili bir kullanıcıyla bağlanabiliyor musunuz?
  • ☐ Redis'e ne kadar bellek ayıracağınıza karar verdiniz mi?
  • ☐ Redis'e yalnızca aynı sunucudaki uygulamalar mı, yoksa başka sunucular da mı bağlanacak?
  • ☐ Redis'i önbellek olarak mı, kalıcı veri deposu olarak mı kullanacaksınız?
  • ☐ Sunucunuzda bir güvenlik duvarı etkin mi?
  • ☐ Sistem paketleri güncel mi?

Son iki sorunun cevabı, birazdan yapacağınız bellek ve kalıcılık ayarlarını doğrudan belirler. Önbellek amaçlı bir kurulumda kalıcılığı kapatıp bellek sınırı koymak, kuyruk ve oturum tutan bir kurulumda ise kalıcılığı açık tutmak gerekir.

Ubuntu Sunucuya Redis Nasıl Kurulur?

Ubuntu'da Redis'i kurmanın en hızlı yolu, dağıtımın kendi paket deposundaki redis-server paketini kullanmaktır. Bu paket kurulumdan sonra Redis'i bir sistem servisi olarak otomatik başlatır.

Adım 1: Paketleri güncelleyin ve Redis'i kurun

sudo apt update
sudo apt install -y redis-server

Adım 2: Servisi açılışta başlayacak şekilde ayarlayın

sudo systemctl enable --now redis-server
sudo systemctl status redis-server

Çıktıda active (running) ifadesini görüyorsanız Redis çalışıyor demektir.

Adım 3: Bağlantıyı test edin

Redis, redis-cli adında bir komut satırı aracıyla gelir. Aşağıdaki komut sunucuya bir "ping" gönderir:

redis-cli ping

Cevap olarak PONG görüyorsanız kurulum başarılıdır. Basit bir yazma ve okuma denemesi de yapabilirsiniz:

redis-cli set selam "TuemCloud"
redis-cli get selam
redis-cli set gecici "5 dakika yaşar" EX 300
redis-cli ttl gecici

Son komut, gecici anahtarının silinmesine kaç saniye kaldığını gösterir. TTL'nin nasıl çalıştığını görmek için birkaç saniye arayla tekrar çalıştırabilirsiniz.

Dağıtım deposundaki Redis sürümü, Redis'in en güncel sürümünden birkaç adım geride olabilir. En yeni sürüm özelliklerine ihtiyacınız varsa Redis'in resmi paket deposunu sisteme ekleyerek kurulum yapabilirsiniz. Önbellek ve oturum gibi standart kullanımlar için dağıtım paketi fazlasıyla yeterlidir.

AlmaLinux ve Rocky Linux'a Redis Nasıl Kurulur?

AlmaLinux ve Rocky Linux gibi RHEL tabanlı dağıtımlarda Redis, sistemin kendi uygulama deposunda bulunur ve dnf ile kurulur. Bu dağıtımlarda servis kurulumdan sonra kendiliğinden başlamaz, elle etkinleştirilmesi gerekir:

sudo dnf install -y redis
sudo systemctl enable --now redis
sudo systemctl status redis
redis-cli ping

Bazı sürümlerde depo birden fazla Redis sürümünü modül olarak sunar. Hangi sürümlerin mevcut olduğunu dnf module list redis komutuyla görebilir, ihtiyacınıza göre daha yeni bir sürümü seçebilirsiniz. Yapılandırma dosyası Ubuntu'da olduğu gibi genellikle /etc/redis/redis.conf yolundadır; bazı sürümlerde /etc/redis.conf olarak da bulunabilir.

Docker ile Redis Nasıl Çalıştırılır?

Sunucunuzda Docker kullanıyorsanız Redis'i resmi imajıyla tek komutla çalıştırabilirsiniz. Bu yöntem özellikle birden fazla projeyi aynı sunucuda birbirinden izole çalıştırmak istediğinizde pratiktir:

docker run -d --name redis \
  -p 127.0.0.1:6379:6379 \
  -v redis_data:/data \
  --restart unless-stopped \
  redis:7 redis-server --appendonly yes

Bu komutta dikkat edilmesi gereken iki önemli nokta var. -p 127.0.0.1:6379:6379 ifadesi, Redis portunu yalnızca sunucunun kendi içinden erişilebilir yapar; dışarıya açmaz. -v redis_data:/data ise verilerin konteyner silinse bile korunmasını sağlar. Docker'ın temellerini ve kurulumunu Docker nedir, nasıl kurulur rehberimizde anlattık.

Redis Güvenliği: Mutlaka Yapmanız Gereken Ayarlar

Redis güvenliğinde en kritik kural, Redis portunu (varsayılan olarak 6379) asla şifresiz şekilde internete açmamaktır. İnternete açık ve şifresiz Redis sunucuları, otomatik tarama botları tarafından dakikalar içinde bulunur. Saldırganlar bu sunuculardaki verileri silebilir, okuyabilir ya da sunucuya zararlı yazılım yerleştirmek için Redis'i kullanabilir.

Ayarlar, yapılandırma dosyasında yapılır:

sudo nano /etc/redis/redis.conf

Redis'i yalnızca yerel adrese bağlayın

Redis yalnızca aynı sunucudaki uygulamalar tarafından kullanılacaksa, yapılandırma dosyasındaki bind satırının yalnızca yerel adresleri içerdiğinden emin olun:

bind 127.0.0.1 -::1
protected-mode yes

Güncel paketlerde bu ayar varsayılan olarak böyledir. Ancak internette bulduğunuz bir rehberi uygularken bind 0.0.0.0 yazdıysanız, Redis'i tüm dünyaya açmış olursunuz.

Güçlü bir şifre tanımlayın

Redis'e yalnızca yerelden erişilse bile bir şifre tanımlamak, ikinci bir güvenlik katmanı sağlar. Yapılandırma dosyasında requirepass satırını bulup güçlü ve uzun bir şifre yazın:

requirepass buraya-en-az-32-karakterlik-rastgele-bir-sifre

Rastgele ve güçlü bir şifre üretmek için şu komutu kullanabilirsiniz:

openssl rand -base64 32

Şifre tanımladıktan sonra redis-cli ile bağlanırken şifreyi de belirtmeniz gerekir. Şifreyi komut satırına doğrudan yazmak yerine ortam değişkeniyle vermek, komut geçmişinde görünmesini önler:

sudo systemctl restart redis-server
REDISCLI_AUTH='sifreniz' redis-cli ping

Birden fazla uygulama aynı Redis'i kullanıyorsa, her uygulamaya yalnızca kendi anahtarlarına erişebilen ayrı bir kullanıcı tanımlamak için Redis'in ACL (erişim kontrol listesi) özelliğinden yararlanabilirsiniz.

Uzak erişim gerekiyorsa güvenlik duvarıyla sınırlayın

Redis'e başka bir sunucudan bağlanmanız gerekiyorsa, portu herkese açmak yerine yalnızca o sunucunun IP adresine izin verin. Ubuntu'da UFW ile bu şöyle yapılır:

sudo ufw allow from 203.0.113.10 to any port 6379 proto tcp

Buradaki IP adresini kendi uygulama sunucunuzun IP adresiyle değiştirin. Mümkünse iki sunucu arasındaki Redis trafiğini özel ağ veya şifreli bir tünel üzerinden taşımak daha güvenli bir yaklaşımdır. Sunucu genelinde alınması gereken diğer önlemler için sanal sunucu güvenliği rehberimizi de uygulayın.

Aşağıdaki kontrol listesiyle Redis güvenliğinizi hızlıca gözden geçirebilirsiniz:

  • ☐ bind ayarı yalnızca gerekli adresleri içeriyor mu?
  • ☐ protected-mode açık mı?
  • ☐ requirepass veya ACL ile güçlü bir parola tanımlandı mı?
  • ☐ 6379 portu güvenlik duvarında herkese kapalı mı?
  • ☐ Redis root kullanıcısıyla değil, kendi sistem kullanıcısıyla mı çalışıyor?
  • ☐ Redis paketleri düzenli olarak güncelleniyor mu?

Redis Bellek ve Kalıcılık Ayarları Nasıl Yapılır?

Redis'i doğru yapılandırmanın iki temel ayarı vardır: Redis'in en fazla ne kadar RAM kullanacağını belirleyen bellek sınırı ve verilerin sunucu yeniden başladığında kaybolup kaybolmayacağını belirleyen kalıcılık. Bu iki ayar, Redis'i önbellek mi yoksa veri deposu mu olarak kullandığınıza göre farklı yapılır.

Bellek sınırı ve çıkarma politikası

Varsayılan kurulumda Redis'in bir bellek sınırı yoktur; veri eklendikçe RAM tüketimi büyür. Önbellek amaçlı kullanımda mutlaka bir sınır koyun ve bellek dolduğunda hangi verilerin silineceğini belirleyin:

maxmemory 256mb
maxmemory-policy allkeys-lru

allkeys-lru politikası, bellek dolduğunda en uzun süredir kullanılmayan anahtarları siler. Önbellek senaryoları için en yaygın ve güvenli tercihtir. Diğer politikaların farkları aşağıdaki tabloda özetlenmiştir:

PolitikaBellek dolduğunda ne yapar?Ne zaman kullanılır? noevictionHiçbir veriyi silmez, yeni yazma isteklerine hata dönerKuyruk ve oturum gibi kaybolmaması gereken veriler allkeys-lruEn uzun süredir kullanılmayan anahtarları silerGenel amaçlı önbellek, WordPress nesne önbelleği allkeys-lfuEn az sıklıkla kullanılan anahtarları silerBazı verilerin sürekli yoğun okunduğu önbellekler volatile-lruYalnızca TTL tanımlı anahtarlar arasından en eski kullanılanı silerÖnbellek ve kalıcı verilerin aynı Redis'te tutulduğu yapılar volatile-ttlSüresi dolmaya en yakın anahtarları silerKısa ömürlü verilerin yoğun olduğu yapılar

Kuyruk ve oturum verilerini önbellekle aynı Redis'te tutuyorsanız allkeys-lru kullanmak bu verilerin beklenmedik şekilde silinmesine yol açabilir. Bu durumda ya ayrı Redis örnekleri çalıştırın ya da volatile-lru politikasıyla yalnızca TTL'li önbellek anahtarlarının silinmesini sağlayın.

Kalıcılık: RDB mi, AOF mi?

Redis, verileri diske kaydetmek için iki yöntem sunar. RDB, belirli aralıklarla tüm verinin anlık görüntüsünü (snapshot) alır. AOF (Append Only File) ise her yazma işlemini bir günlük dosyasına ekler. İkisi birlikte de kullanılabilir.

ÖzellikRDB (anlık görüntü)AOF (işlem günlüğü) Kaydetme yöntemiBelirli aralıklarla tüm verinin kopyasıHer yazma işleminin kaydı Çökme anında veri kaybıSon anlık görüntüden sonraki değişiklikler kaybolabilirGenellikle en fazla son bir saniyelik veri Dosya boyutuKüçük ve sıkıştırılmışDaha büyük, zamanla yeniden yazılarak küçültülür Yeniden başlatma hızıHızlıDaha yavaş Disk yüküAralıklıSürekli ama düşük Uygun senaryoYedekleme, kayıp toleransı olan verilerKuyruk, oturum ve kaybolmaması gereken veriler

Redis'i yalnızca önbellek olarak kullanıyorsanız kalıcılığı tamamen kapatabilirsiniz; önbellek zaten yeniden üretilebilir veridir. Bunun için yapılandırma dosyasında şu satırları kullanın:

save ""
appendonly no

Kuyruk veya oturum verisi tutuyorsanız AOF'u açık tutmak daha güvenlidir:

appendonly yes
appendfsync everysec

AOF ve RDB dosyaları disk üzerinde yoğun yazma işlemi yapabilir. NVMe SSD diskler bu yazma işlemlerini klasik disklere göre çok daha hızlı tamamladığı için kalıcılık açıkken Redis'in performansı daha az etkilenir. Ayarları kaydettikten sonra servisi yeniden başlatmayı unutmayın.

WordPress'i Redis Nesne Önbelleğiyle Hızlandırma

WordPress, her sayfa yüklemesinde ayarlar, menüler, kullanıcı bilgileri ve eklenti verileri için onlarca veritabanı sorgusu yapar. Varsayılan nesne önbelleği bu verileri yalnızca o sayfa yüklemesi boyunca hafızada tutar ve bir sonraki istekte hepsini yeniden sorgular. Redis kalıcı nesne önbelleği ise bu verileri istekler arasında saklayarak veritabanı sorgularının büyük bölümünü ortadan kaldırır. Özellikle yönetim paneli, WooCommerce sepeti ve üye girişli sayfalar gibi tam sayfa önbelleğe alınamayan bölümlerde fark belirgindir.

Adım 1: PHP Redis eklentisini kurun

WordPress'in Redis ile konuşabilmesi için sunucuda PHP'nin Redis eklentisinin kurulu olması gerekir. Ubuntu'da:

sudo apt install -y php-redis
sudo systemctl restart php*-fpm

Web sunucunuz PHP'yi farklı bir yöntemle çalıştırıyorsa, servis adı ve yeniden başlatma komutu farklı olabilir. Örneğin LiteSpeed kullanan sunucularda PHP eklentisi LiteSpeed'in kendi PHP paketleriyle kurulur.

Adım 2: wp-config.php dosyasına bağlantı bilgilerini ekleyin

Sitenizin ana dizinindeki wp-config.php dosyasını açın ve /* That's all, stop editing! */ satırının üstüne şu tanımları ekleyin:

define( 'WP_REDIS_HOST', '127.0.0.1' );
define( 'WP_REDIS_PORT', 6379 );
define( 'WP_REDIS_PASSWORD', 'redis-sifreniz' );
define( 'WP_REDIS_DATABASE', 0 );
define( 'WP_REDIS_PREFIX', 'siteadi_' );

Aynı Redis'i birden fazla WordPress sitesi kullanıyorsa, her siteye farklı bir WP_REDIS_PREFIX veya WP_REDIS_DATABASE değeri verin. Aksi halde sitelerin önbellek verileri birbirine karışabilir.

Adım 3: Önbellek eklentisini etkinleştirin

WordPress yönetim panelinde Eklentiler → Yeni Ekle bölümünden "Redis Object Cache" eklentisini kurup etkinleştirin. Ardından Ayarlar → Redis bölümünde "Enable Object Cache" düğmesine tıklayın. Durum ekranında "Connected" ifadesini görüyorsanız bağlantı başarılıdır.

Sitenizde LiteSpeed Cache eklentisi kullanıyorsanız ayrı bir eklentiye gerek yoktur. LiteSpeed Cache → Önbellek → Nesne bölümünden nesne önbelleğini açıp yöntem olarak Redis'i seçmeniz ve bağlantı bilgilerini girmeniz yeterlidir. İki eklentiyi aynı anda nesne önbelleği için kullanmayın; çakışma yaşanır.

Adım 4: Sonucu ölçün

Redis'in gerçekten çalıştığını görmek için sunucuda şu komutu kullanabilirsiniz:

REDISCLI_AUTH='sifreniz' redis-cli info stats | grep -E "keyspace_hits|keyspace_misses"

keyspace_hits değeri, önbellekten başarıyla karşılanan istek sayısını gösterir. Siteyi birkaç dakika gezdikten sonra bu sayının keyspace_misses değerinden belirgin şekilde yüksek olması beklenir. Önbelleği LiteSpeed sayfa önbelleği ve görsel optimizasyonu gibi diğer hız iyileştirmeleriyle birlikte kullandığınızda en iyi sonucu alırsınız. Sunucu yönetimiyle uğraşmadan LiteSpeed altyapısında hızlı bir WordPress sitesi istiyorsanız WordPress hosting paketlerimizi inceleyebilirsiniz.

Redis'te Sık Karşılaşılan Hatalar ve Çözümleri

Redis kurulumlarındaki sorunların büyük kısmı bağlantı, yetkilendirme ve bellek ayarlarından kaynaklanır. En sık karşılaşılan hatalar ve çözümleri şunlardır.

"Could not connect to Redis at 127.0.0.1:6379: Connection refused"

Bu hata, Redis servisinin çalışmadığını ya da farklı bir adres veya portu dinlediğini gösterir. Önce sudo systemctl status redis-server komutuyla servisin durumunu kontrol edin. Servis çalışmıyorsa sudo journalctl -u redis-server -n 50 ile son kayıtlara bakın; sebep genellikle yapılandırma dosyasındaki bir yazım hatasıdır.

"NOAUTH Authentication required"

Redis'e şifre tanımladınız ama uygulama veya redis-cli şifre göndermeden bağlanıyor. Uygulamanın yapılandırmasına doğru şifreyi ekleyin. WordPress için bu, wp-config.php dosyasındaki WP_REDIS_PASSWORD değeridir.

"OOM command not allowed when used memory > 'maxmemory'"

Redis bellek sınırına ulaşmış ve çıkarma politikası noeviction olduğu için yeni veri kabul etmiyor. Önbellek kullanımında politikayı allkeys-lru yapın. Kuyruk veya oturum gibi kritik veriler tutuyorsanız bellek sınırını artırın ya da gereksiz büyüyen anahtarları tespit edin. Bellek kullanımını redis-cli info memory komutuyla izleyebilirsiniz.

WordPress yönetim panelinde değişiklikler görünmüyor

Nesne önbelleği eski veriyi sunuyor olabilir. Redis Object Cache eklentisinin ayarlar ekranındaki "Flush Cache" düğmesiyle önbelleği temizleyin. Sorun sık tekrarlanıyorsa, veriyi doğrudan veritabanına yazan bir eklentinin önbelleği güncellemediği anlamına gelir; o eklentiyi güncelleyin ya da önbellekten hariç tutun.

Redis bellek uyarısı: "overcommit_memory is set to 0"

Redis, arka planda anlık görüntü alırken bellek kopyalama işlemi yapar. Linux çekirdeğinin varsayılan bellek ayarı bu işlemin başarısız olmasına yol açabilir. Uyarıyı gidermek için şu komutları çalıştırın:

echo "vm.overcommit_memory = 1" | sudo tee /etc/sysctl.d/99-redis.conf
sudo sysctl --system

Redis Lisansı ve Valkey Hakkında Bilmeniz Gerekenler

Redis uzun yıllar boyunca serbest bir açık kaynak lisansıyla dağıtıldı. Daha sonra lisans koşulları değişti ve bu değişikliğin ardından Linux Foundation çatısı altında, Redis'in önceki açık kaynak sürümünden türetilen Valkey projesi ortaya çıktı. Redis'in yeni sürümleri ise yeniden OSI onaylı bir açık kaynak lisans seçeneğiyle sunulmaya başladı. Kendi sunucunuzda Redis'i bir web sitesi veya uygulama için önbellek olarak kullanmanız bu lisans değişikliklerinden etkilenmez.

Valkey, Redis komutlarıyla büyük ölçüde uyumludur ve bazı Linux dağıtımlarında Redis'in yerine varsayılan paket olarak gelmeye başlamıştır. Bu rehberdeki yapılandırma ayarlarının ve komutların neredeyse tamamı Valkey için de geçerlidir. WordPress eklentileri ve PHP Redis eklentisi de Valkey ile sorunsuz çalışır.

Redis Projeleriniz İçin Neden Türkiye Lokasyonlu Sunucu?

Redis milisaniyenin altında yanıt verse de, kullanıcıyla sunucu arasındaki ağ gecikmesi toplam yanıt süresini belirleyen asıl faktördür. Kullanıcılarınız Türkiye'deyse, Redis'in hız kazancını kullanıcıya eksiksiz yansıtmanın yolu uygulamayı Türkiye'deki bir veri merkezinde çalıştırmaktır. Kişisel verilerin yurt içinde tutulması da oturum ve kullanıcı verisi saklayan uygulamalar için KVKK uyumunu kolaylaştırır. Yerel altyapının diğer avantajlarını Türkiye sunucu sayfamızda bulabilirsiniz.

TuemCloud, Türkiye lokasyonlu ve NVMe SSD diskli sanal sunucular sunan bir hosting ve sunucu sağlayıcısıdır. Redis'in RAM'de çalışan hızı, NVMe disklerin kalıcılık işlemlerindeki hızıyla birleştiğinde hem önbellek hem de kuyruk senaryolarında tutarlı bir performans elde edilir. Trafiği yoğun dönemlerde hızla artan e-ticaret siteleri için ise e-ticaret sunucu çözümleri, Redis destekli önbellek ve oturum yapısı için uygun bir temel sunar.

Redis Destekli Projenizi TuemCloud Sunucusunda Başlatın

Bu rehberdeki adımları uygulamak için ihtiyacınız olan şey, root erişimli ve belleği size ayrılmış bir Linux sunucu. Tek bir WordPress sitesini hızlandırmak için küçük bir paket yeterliyken, birden fazla site, kuyruk sistemi ve oturum yönetimi aynı sunucuda çalışacaksa bellek miktarı belirleyici hale gelir. Diskle yoğun çalışan veritabanı ve kalıcılık ayarları için NVMe VDS sunucu paketlerimiz, Türkiye lokasyonu ve 7/24 teknik destekle Redis iş yükleriniz için güçlü bir altyapı sağlar. Projenize ne kadar bellek ayırmanız gerektiğinden emin değilseniz destek ekibimize ihtiyacınızı anlatmanız yeterli; doğru kaynak planlamasında size yardımcı oluruz.

Sıkça Sorulan Sorular

Redis ücretsiz mi?

Evet. Kendi sunucunuza kurduğunuz Redis, ücretsiz olarak kullanılabilir ve bir web sitesi ya da uygulama için önbellek, oturum veya kuyruk olarak kullanmanız herhangi bir lisans ücreti gerektirmez. Redis'ten türetilen Valkey de tamamen açık kaynaklı ve ücretsizdir.

Redis sunucu yeniden başladığında verileri kaybeder mi?

Kalıcılık kapalıysa evet, tüm veriler silinir. RDB veya AOF kalıcılığı açıksa Redis yeniden başladığında verileri diskten geri yükler. Önbellek kullanımında veri kaybı sorun değildir, çünkü önbellek yeniden oluşturulur. Kuyruk ve oturum gibi kritik veriler için AOF'u açık tutmanız önerilir.

Redis paylaşımlı hostingde kullanılabilir mi?

Paylaşımlı hostingde kendi Redis servisinizi kuramazsınız, çünkü bu işlem root erişimi gerektirir. Bazı hosting paketlerinde Redis sağlayıcı tarafından hazır sunulabilir; bunun için paket özelliklerini kontrol etmeniz gerekir. Redis'i tam kontrolle kullanmak istiyorsanız VDS veya VPS gibi root erişimli bir sunucu gerekir.

Redis MySQL'in yerini alır mı?

Çoğu projede hayır. Redis, verilerin hızlı okunması gereken önbellek, oturum ve kuyruk gibi işler için tasarlanmıştır. MySQL ise ilişkisel veriyi kalıcı ve tutarlı şekilde saklamak, karmaşık sorgular çalıştırmak için kullanılır. En iyi sonuç, ikisini birlikte kullanarak alınır: Kalıcı veri MySQL'de durur, sık okunan kopyası Redis'te tutulur.

WordPress sitemde Redis gerçekten fark yaratır mı?

Sitenizde tam sayfa önbellek zaten açıksa, ziyaretçilerin gördüğü sayfalarda fark sınırlı olabilir. Asıl kazanç; yönetim paneli, WooCommerce sepet ve ödeme sayfaları, üye girişli bölümler ve çok sayıda eklenti kullanan sitelerde görülür. Bu sayfalarda Redis, veritabanı sorgularının önemli bir kısmını ortadan kaldırarak yanıt süresini belirgin şekilde kısaltır.