Redis Bellek Yapılandırma Aracı

Kullanım senaryonuza göre optimum redis.conf parametrelerini hesaplar. maxmemory, eviction policy, persistence ve bağlantı ayarları için kopyalamaya hazır yapılandırma üretir.

📋 Mevcut Redis durumunu öğrenmek için bu komutları çalıştırın
$ redis-cli info memory | grep -E 'used_memory_human|maxmemory_human|mem_fragmentation_ratio' $ redis-cli info stats | grep -E 'evicted_keys|keyspace_hits|keyspace_misses' $ redis-cli info keyspace # Veritabanı ve anahtar sayısı $ redis-cli info clients | grep connected # Aktif bağlantı sayısı
Hit Rate hesaplama: keyspace_hits / (keyspace_hits + keyspace_misses) × 100 — bu oran %95’in üzerinde olmalı. Düşükse maxmemory değerini artırın veya eviction policy’yi gözden geçirin.
Sunucu ve Kullanım Bilgileri
MB

free -m ile öğrenin.

MB

Toplam RAM’in %25-50’si önerilir.

Kullanım Senaryosu

Eviction policy ve persistence ayarlarını etkiler.

Cache için persistence genellikle gerekmez.

Bağlantı Ayarları
conn

PHP-FPM max_children değerine yakın tutun.

sn

0 = asla kapatma. Boşta bağlantılar için 300 önerilir.

Mümkünse localhost ile sınırlayın.

Hesaplama Sonuçları

maxmemory
maxmemory-policy
eviction politikası
maxclients
max bağlantı
timeout
saniye
Persistence
kalıcılık modu
hz
arka plan görev sıklığı
tcp-backlog
bağlantı kuyruğu
databases
veritabanı sayısı
/etc/redis/redis.conf

    

Redis Yapılandırması Rehberi

Redis, bellek içi (in-memory) veri yapısı deposudur. Saniyede milyonlarca okuma/yazma işlemi yapabilir. WordPress Object Cache, session yönetimi, queue ve pub/sub gibi çok farklı amaçlar için kullanılır. Her kullanım amacı farklı bir yapılandırma gerektirir.

Temel Hesaplama Notları

maxmemory          = Redis için ayrılan RAM (toplam RAM'in %25-50'si)
maxmemory-policy   = Cache: allkeys-lru | Session: noeviction | Queue: noeviction
Gerçek kullanım    = maxmemory + overhead (~%10-20 fragmentation)
tcp-backlog        = Düşük trafik: 128 | Yüksek trafik: 511
hz                 = Cache: 10 | Yüksek bağlantı: 20-100
Eviction Policy (Tahliye Politikası)
🔄

allkeys-lru — Cache için Önerilen

Bellek dolduğunda en uzun süredir kullanılmayan anahtarı siler. Tüm anahtarlara uygulanır. WordPress Object Cache gibi saf cache kullanımları için idealdir.

🚫

noeviction — Session / Queue için

Bellek dolduğunda yeni yazma işlemlerini reddeder, hata döner. Session veya queue gibi veri kaybının kabul edilemez olduğu durumlarda kullanın.

volatile-lru — TTL’li Anahtarlar

Sadece TTL (expire) tanımlı anahtarlar arasından en az kullanılanı siler. Hem kalıcı hem geçici veri saklıyorsanız tercih edin. Kalıcı veriler silinmez.

🎲

allkeys-lfu — Redis 4.0+

En az sıklıkla kullanılan anahtarı siler (LRU: en uzun süre önce, LFU: en az sayıda kullanılan). Tekrar eden erişim patternlerinde LRU’dan daha iyi sonuç verir.

Persistence (Kalıcılık) Modları
📸

RDB — Periyodik Snapshot

Belirli aralıklarla tüm veriyi diske yazar. Kompakt dosya boyutu ve hızlı yeniden başlatma sağlar. Cache için yeterlidir. Son snapshot’tan bu yana yazılan veriler kaybolabilir.

📝

AOF — Append Only File

Her yazma işlemini log dosyasına ekler. Çok daha güvenli ama daha yavaş. appendfsync everysec ile saniyede 1 veri kaybı riskiyle makul performans elde edilir.

🔕

Persistence Kapalı

Cache kullanımı için en iyi seçenek. Disk I/O olmadan maksimum hız. Redis yeniden başladığında veriler sıfırlanır — bu cache için tamamen normaldir.

🛡️

RDB + AOF (Hybrid)

Redis 4.0+ ile AOF başlangıçta RDB snapshot kullanır. Hem hızlı yeniden başlatma hem de minimum veri kaybı sağlar. Kritik veriler için tercih edin.

Parametre Referansı
Parametre Açıklama Önerilen
maxmemory Redis’in kullanabileceği maksimum bellek. Aşılınca eviction policy devreye girer. RAM’in %25-50’si
maxmemory-policy Bellek dolduğunda hangi anahtarların silineceğini belirler. allkeys-lru (cache)
maxclients Eş zamanlı maksimum istemci sayısı. Aşılınca yeni bağlantılar reddedilir. 100 – 500
timeout Boşta kalan bağlantının kaç saniye sonra kapatılacağı. 0 = asla. 300
tcp-keepalive Ölü bağlantıları tespit etmek için TCP keepalive süresi. 300
hz Arka plan görevlerinin (expire, eviction) saniyedeki çalışma sıklığı. 10 – 100
activerehashing Hash tablosunu arka planda yeniden düzenler. CPU karşılığında bellek tasarrufu. yes
lazyfree-lazy-eviction Redis 4.0+: Silme işlemlerini arka planda yapar. Ana thread’i bloke etmez. yes
İzleme Komutları
Anlık istatistikler
$ redis-cli monitor # Anlık komutları izle (dikkatli kullanın) $ redis-cli --latency # Gecikme testi $ redis-cli --stat # Sürekli istatistik akışı $ redis-cli info all | grep -E 'hit|miss|evict|memory'
⚠ vm.overcommit_memory Ayarı Redis, Linux’ta vm.overcommit_memory = 1 olmasını önerir. Aksi hâlde RDB snapshot sırasında hata alabilirsiniz: sysctl vm.overcommit_memory=1 ve kalıcı yapmak için /etc/sysctl.conf dosyasına ekleyin.
💡 WordPress Object Cache WordPress ile Redis kullanıyorsanız Redis Object Cache eklentisi ve WP_CACHE = true tanımı gerekir. maxmemory-policy olarak allkeys-lru seçin ve persistence’ı kapatın — WordPress cache verisi kaybolsa bile otomatik yeniden oluşturulur.