Redis Kurulumu ve Yapılandırması: Ubuntu ve AlmaLinux Rehberi
Redis in-memory cache sunucu kurulum rehberi: Ubuntu ve AlmaLinux kurulumu, redis.conf yapılandırması, PHP ve WordPress entegrasyonu.
Redis Nedir?
Redis (Remote Dictionary Server), Salvatore Sanfilippo tarafından 2009'da geliştirilen açık kaynaklı, in-memory veri yapısı deposudur. String, hash, list, set, sorted set, bitmap ve hyperloglog gibi zengin veri yapılarını destekleyen Redis; önbellekleme (caching), oturum yönetimi (session store), pub/sub mesajlaşma, gerçek zamanlı sıralamalar ve kuyruk (queue) yönetimi gibi çeşitli kullanım alanlarına sahiptir.
Redis'in en kritik özelliği, tüm verileri RAM'de tutmasıdır; bu sayede geleneksel disk tabanlı veritabanlarına kıyasla on ila yüz kat daha hızlı okuma/yazma operasyonları gerçekleştirir. Saniyede yüz binlerce işlemi tek çekirdekte gerçekleştirebilen Redis, düşük gecikme süresi gerektiren uygulamaların vazgeçilmez bileşenlerinden biri haline gelmiştir.
Twitter, GitHub, Stackoverflow, Pinterest ve Airbnb gibi büyük platformlar Redis'i yoğun biçimde kullanmaktadır. Laravel, Symfony, Django ve Rails gibi web frameworkleri Redis'i önbellek ve kuyruk backend'i olarak birinci sınıf destek ile entegre eder. WordPress için W3 Total Cache ve Redis Object Cache eklentileri, veritabanı sorgularını önbelleğe alarak sayfa yükleme süresini dramatik biçimde kısaltır.
Temel Özellikler
- Yüksek Performans: Tüm veriler RAM'de; saniyede 100.000+ işlem kapasitesi.
- Zengin Veri Yapıları: String, Hash, List, Set, Sorted Set, Stream, Bitmap.
- Kalıcılık (Persistence): RDB (anlık görüntü) ve AOF (append-only file) ile veri kalıcılığı.
- Pub/Sub: Gerçek zamanlı mesajlaşma ve event sistemi.
- Lua Betikleme: Atomik işlemler için sunucu taraflı betikler.
- Replikasyon: Master-slave replikasyon ile yüksek kullanılabilirlik.
- Redis Cluster: Yatay ölçekleme için sharding desteği.
- TTL Desteği: Her anahtara yaşam süresi (expire) belirlenebilir.
Sistem Gereksinimleri
- CPU: 1 vCPU
- RAM: 512 MB (önbellek boyutuna göre daha fazla)
- Disk: 5 GB (RDB/AOF dosyaları için)
İşletim Sistemine Göre Kurulum
🟠 Ubuntu 22.04 Üzerinde Redis Kurulumu
1. Sistemi Güncelleyin
sudo apt update && sudo apt upgrade -y
2. Redis'i Kurun
sudo apt install redis-server -y
3. Servisi Başlatın ve Aktifleştirin
sudo systemctl start redis-server
sudo systemctl enable redis-server
sudo systemctl status redis-server
4. Kurulumu Doğrulayın
redis-cli ping
# Yanıt: PONG
🔵 AlmaLinux 9 Üzerinde Redis Kurulumu
1. EPEL Deposunu Ekleyin ve Sistemi Güncelleyin
sudo dnf install epel-release -y
sudo dnf update -y
2. Redis'i Kurun
sudo dnf install redis -y
3. Servisi Başlatın ve Aktifleştirin
sudo systemctl start redis
sudo systemctl enable redis
sudo systemctl status redis
4. Firewall Ayarı (Yalnızca Uzak Erişim Gerekirse)
sudo firewall-cmd --permanent --add-port=6379/tcp
sudo firewall-cmd --reload
redis.conf Yapılandırması
# Ubuntu
sudo nano /etc/redis/redis.conf
# AlmaLinux
sudo nano /etc/redis/redis.conf
# veya: /etc/redis.conf
Temel Güvenlik Ayarları
# Yalnızca localhost'tan erişime izin ver (varsayılan, önerilir)
bind 127.0.0.1
# Belirli bir IP'den uzak erişim için:
# bind 127.0.0.1 10.0.0.5
# Protected mode (bind ayarlanmışsa otomatik aktif)
protected-mode yes
# Şifre koruması (zorunlu)
requirepass GucluRedisParolasi123!
# Port (varsayılan: 6379)
port 6379
Bellek Yönetimi
# Maksimum bellek limiti (RAM'in %25-50'si önerilir)
maxmemory 512mb
# Bellek limiti aşıldığında davranış
# allkeys-lru: En az kullanılan anahtarı sil (genel önbellek için ideal)
# volatile-lru: Expire süreli anahtarlardan en az kullanılanı sil
# noeviction: Hata döndür (kalıcı veri için)
maxmemory-policy allkeys-lru
Kalıcılık Ayarları
# RDB (Anlık görüntü) - önbellek için kapatabilirsiniz
save 900 1 # 900 saniyede 1+ değişiklik varsa kaydet
save 300 10 # 300 saniyede 10+ değişiklik varsa kaydet
save 60 10000 # 60 saniyede 10000+ değişiklik varsa kaydet
# Salt önbellek için RDB'yi kapat:
# save ""
# AOF (Append Only File) - kritik veri için aktifleştirin
appendonly no # Önbellek için kapalı bırakın
# Ubuntu'da yeniden başlatın
sudo systemctl restart redis-server
# AlmaLinux'ta
sudo systemctl restart redis
Bağlantı Testi
redis-cli -a GucluRedisParolasi123! ping
redis-cli -a GucluRedisParolasi123! info server | grep redis_version
PHP ile Redis Entegrasyonu
PHP Redis Uzantısı Kurulumu
# Ubuntu
sudo apt install php8.3-redis -y
sudo systemctl restart php8.3-fpm
# AlmaLinux
sudo dnf install php-redis -y
sudo systemctl restart php-fpm
PHP ile Redis Kullanım Örneği
connect('127.0.0.1', 6379);
$redis->auth('GucluRedisParolasi123!');
// Değer kaydetme (300 saniye TTL)
$redis->setex('kullanici:123', 300, json_encode(['ad' => 'Ali', 'email' => 'ali@example.com']));
// Değer okuma
$kullanici = json_decode($redis->get('kullanici:123'), true);
echo $kullanici['ad']; // Ali
// Sayaç artırma
$redis->incr('sayfa_goruntulenme');
echo $redis->get('sayfa_goruntulenme');
?>
WordPress Redis Object Cache Entegrasyonu
- WordPress Eklentiler → Redis Object Cache eklentisini kurun ve aktifleştirin.
wp-config.phpdosyasına ekleyin:
define('WP_REDIS_HOST', '127.0.0.1');
define('WP_REDIS_PORT', 6379);
define('WP_REDIS_PASSWORD', 'GucluRedisParolasi123!');
define('WP_REDIS_TIMEOUT', 1);
define('WP_REDIS_READ_TIMEOUT', 1);
define('WP_REDIS_DATABASE', 0);
- Eklenti ayarlarından "Enable Object Cache" butonuna basın.
- Bağlantı durumunu kontrol edin: Ayarlar → Redis → Connected görmelisiniz.
Sık Karşılaşılan Sorunlar
- NOAUTH Authentication required:
redis-clikomutuna-a parolaekleyin veya wp-config.php'deki parolayı kontrol edin. - Connection refused: Redis servisinin çalıştığını (
systemctl status redis) ve bind ayarını kontrol edin. - OOM (Out of Memory):
maxmemorydeğerini artırın veyamaxmemory-policyayarını yapılandırın. - Redis çok fazla bellek kullanıyor:
redis-cli info memoryile kullanımı analiz edin.maxmemorysınırı tanımlayın. - Yavaş sorgular:
redis-cli slowlog get 10ile en yavaş 10 komutu görüntüleyin.
İlgili Makaleler
Yorumlar
Henüz yorum yok. İlk yorumu siz yapın!