Buyukweb
Redis Kurulumu ve Web Uygulaması Önbellekleme Rehberi

Redis Kurulumu ve Web Uygulaması Önbellekleme Rehberi

Redis nasıl kurulur ve web uygulamalarında nasıl kullanılır? WordPress oturum önbelleği, PHP Redis entegrasyonu, Node.js Redis kullanımı ve Redis güvenlik rehberi.

Büyükweb Teknik Ekibi25 Kasım 20247 dakika okuma

Redis Kurulumu ve Web Uygulaması Önbellekleme Rehberi

Redis (Remote Dictionary Server), in-memory veri yapısı deposudur. Önbellekleme, oturum yönetimi, gerçek zamanlı istatistikler ve kuyruklama için kullanılan Redis, web uygulamalarının performansını dramatik biçimde artırır. Bu rehberde Redis kurulumunu ve yaygın kullanım senaryolarını ele alıyoruz.

Redis Neden Kullanılır?

  • Hız: Tüm veriler RAM'de tutulur, mikrosaniye düzeyinde yanıt süresi
  • Veri yapıları: String, Hash, List, Set, Sorted Set gibi zengin veri tipleri
  • Kalıcılık: Opsiyonel disk yazımı ile veri korunabilir
  • Pub/Sub: Mesajlaşma sistemi
  • Session yönetimi: Çok sunuculu ortamlarda oturum paylaşımı

Performans Karşılaştırması:

  • MySQL sorgusu: 1-10ms
  • Redis okuma: 0.1-1ms
  • 10-100x daha hızlı

Redis Kurulumu

Ubuntu / Debian

apt update
apt install redis-server

# Yapılandırma
nano /etc/redis/redis.conf

# Servisi başlat
systemctl enable --now redis-server

AlmaLinux / CentOS

dnf install redis
systemctl enable --now redis

# Yapılandırma
nano /etc/redis/redis.conf

Sürüm Kontrolü

redis-cli --version
redis-server --version

Redis Temel Yapılandırma

/etc/redis/redis.conf:

# Sadece localhost dinle (güvenlik)
bind 127.0.0.1

# Şifre koru
requirepass guclu_redis_sifresi

# Maksimum bellek
maxmemory 256mb

# Bellek dolduğunda ne yap?
maxmemory-policy allkeys-lru    # En az kullanılanı çıkar

# Kalıcılık (opsiyonel)
# 900 saniyede 1 değişiklik
save 900 1
save 300 10
save 60 10000

Değişiklik sonrası:

systemctl restart redis-server

Redis CLI Kullanımı

# Redis'e bağlan
redis-cli

# Şifre ile bağlan
redis-cli -a redis_sifresi

# Bağlantı testi
redis-cli ping    # PONG dönmeli

Temel Redis Komutları

# String işlemleri
SET anahtar deger
GET anahtar
DEL anahtar
TTL anahtar          # Kalan süre (saniye)
EXPIRE anahtar 3600  # 1 saat sonra sil

# Hash işlemleri
HSET kullanici:1 isim "Ahmet" yas 25
HGET kullanici:1 isim
HGETALL kullanici:1

# Liste işlemleri
RPUSH gorev "Görev 1"
RPUSH gorev "Görev 2"
LRANGE gorev 0 -1   # Tüm liste

# Set işlemleri
SADD etiketler "redis" "php" "web"
SMEMBERS etiketler

# Tüm anahtarlar
KEYS *
KEYS kullanici:*    # Pattern ile

# İstatistik
INFO
INFO memory
INFO stats

WordPress için Redis Object Cache

WordPress, her sayfa yüklemesinde onlarca veritabanı sorgusu çalıştırır. Redis Object Cache bu sorguları önbelleğe alır.

Redis Object Cache Kurulumu

  1. WordPress'te Redis Object Cache eklentisini kurun
  2. wp-config.php'ye ekleyin:
define('WP_REDIS_HOST', '127.0.0.1');
define('WP_REDIS_PORT', 6379);
define('WP_REDIS_PASSWORD', 'redis_sifresi');
define('WP_REDIS_TIMEOUT', 1);
define('WP_REDIS_READ_TIMEOUT', 1);
define('WP_REDIS_DATABASE', 0);
  1. Eklenti ayarlarından Enable Object Cache butonuna tıklayın

Performans Etkisi

Redis Object Cache ile:

  • Veritabanı sorgu sayısı: 50 → 2-5'e düşer
  • Sayfa yükleme süresi: %30-60 iyileşme
  • Sunucu CPU kullanımı: %20-40 azalma

PHP ile Redis Kullanımı

PHP Redis Eklentisi Kurulumu

# Ubuntu
apt install php-redis

# CentOS/AlmaLinux
dnf install php-pecl-redis

# PHP'yi yeniden başlat
systemctl restart php-fpm

PHP Redis Örneği

$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
$redis->auth('redis_sifresi');

// Önbellekleme örneği
$cache_key = 'urunler_listesi';
$cached = $redis->get($cache_key);

if ($cached) {
    $urunler = json_decode($cached, true);
    echo "Önbellekten geldi";
} else {
    // Veritabanından al
    $urunler = $db->query("SELECT * FROM urunler LIMIT 10");
    $redis->setex($cache_key, 3600, json_encode($urunler));
    echo "Veritabanından geldi";
}

Node.js ile Redis Kullanımı

npm install ioredis
const Redis = require('ioredis');

const redis = new Redis({
  host: '127.0.0.1',
  port: 6379,
  password: 'redis_sifresi',
});

// Temel kullanım
await redis.set('anahtar', 'deger', 'EX', 3600);
const deger = await redis.get('anahtar');

// Next.js API'de önbellekleme
export default async function handler(req, res) {
  const cacheKey = 'products';
  const cached = await redis.get(cacheKey);

  if (cached) {
    return res.json(JSON.parse(cached));
  }

  const products = await db.product.findMany();
  await redis.set(cacheKey, JSON.stringify(products), 'EX', 300);
  res.json(products);
}

Redis Güvenliği

# Şifre zorunlu
requirepass guclu_sifre_128bit

# Tehlikeli komutları devre dışı bırak
rename-command FLUSHALL ""
rename-command DEBUG ""
rename-command CONFIG "gizli_config_komutu"

# Sadece localhost
bind 127.0.0.1

# Protected mode
protected-mode yes

Redis Monitoring

# Anlık istatistik
redis-cli INFO

# Bellek kullanımı
redis-cli INFO memory | grep used_memory_human

# Komutları izle (debug)
redis-cli MONITOR

# Anahtar sayısı
redis-cli DBSIZE

# En yoğun kullanılan komutlar
redis-cli INFO commandstats

Büyükweb Hosting'de Redis

Büyükweb VDS sunucular üzerine Redis kurularak WordPress Object Cache ve uygulama önbellekleme için kullanılabilir. Yüksek trafikli siteler için Redis, veritabanı yükünü dramatik biçimde azaltır.

Sonuç

Redis, web uygulamalarının performansını ve ölçeklenebilirliğini artırmak için vazgeçilmez bir araçtır. WordPress için Object Cache, PHP ve Node.js için session ve sorgu önbelleği olarak kullanılan Redis, doğru konfigürasyon ile sunucu yükünü ciddi oranda azaltır.


Sunucu Guvenligi En Iyi Uygulamalar

Sunucu guvenligi surekli dikkat gerektiren bir surectir.

Guvenlik Duvari

UFW veya firewalld ile yalnizca gerekli portlari acin. SSH, HTTP, HTTPS disindaki portlari kapatin. IP whitelist kullanin.

Log Analizi

fail2ban ile basarisiz giris denemelerini otomatik engelleyin. Logwatch ile gunluk raporlar olusturun. ELK Stack ile merkezi log yonetimi kurun.

Kullanici Yonetimi

Her yonetici icin ayri hesap, root kullanmayin. sudo ile yetki verin. SSH anahtar kimlik dogrulamayi zorunlu kilin.

Dosya Butunlugu

AIDE veya Tripwire ile degisiklikleri izleyin. /tmp noexec ile mount edin. chroot ile izolasyon saglayin.

Yedekleme

3-2-1 kuralini uygulayin. Yedekleri test edin. Ransomware icin offline kopya tutun.

Sunucu Izleme

Zabbix, Prometheus+Grafana veya Netdata ile izleme yapin. Alarm kurallari tanimlayin. Uptime monitoring icin UptimeRobot kullanin. Kapasite planlamasi yaparak gelecekteki ihtiyaclari onceden belirleyin.

Sik Sorulan Sorular

Sunucum hacklendi ne yapmaliyim?

Izole edin, loglari inceleyin, temiz yedekten geri yukleyin, parolalari degistirin.

Restart oncesi ne yapmaliyim?

Aktif kullanicilari kontrol edin, servisleri kaydedin, restart sonrasi dogrulayin.

Sonuc

Sunucu guvenligi katmanli yaklasim gerektirir. Yukardaki uygulamalari sistematik olarak hayata gecirin. Buyukweb 7/24 destek ekibi yardimci olabilir.

Sunucu Bakim Takvimi

Duzenli bakim sunucu sagliginin anahtaridir:

Gunluk

  • Log dosyalarini kontrol edin
  • Disk kullanimini izleyin
  • Yedeklerin basarisini dogrulayin
  • Guvenlik uyarilarini inceleyin

Haftalik

  • Guvenlik guncellemelerini uygulayin
  • Veritabani optimizasyonu calistirin
  • Performans metriklerini analiz edin

Aylik

  • Tam sistem yedegi alin ve test edin
  • Kullanici hesaplarini gozden gecirin
  • SSL sertifika surelerini kontrol edin
  • Kapasite planlama degerlendirmesi yapin

Yillik

  • Felaket kurtarma tatbikati yapin
  • Donanim yasam dongusu degerlendirmesi
  • Guvenlik denetimi yapin

Sunucu Migrasyon Rehberi

  1. Mevcut sunucu envanterini cikartin
  2. Yeni sunucuyu hazirlayin ve yapilandirin
  3. Verileri rsync ile senkronize edin
  4. DNS TTL degerini dusurrun
  5. Son senkronizasyonu yapin ve servisleri baslatin
  6. DNS kayitlarini guncelleyin
  7. Eski sunucuyu bir sure yedek tutun

Hosting ve Sunucu Terimleri Sozlugu

Terim Aciklama
VDS Virtual Dedicated Server - Sanal ozel sunucu
NVMe SSD Non-Volatile Memory Express - En hizli disk teknolojisi
LiteSpeed Yuksek performansli web sunucu yazilimi
CloudLinux Paylasimli hosting icin kaynak izolasyon isletim sistemi
cPanel Populer web hosting kontrol paneli
Plesk Web hosting ve sunucu yonetim paneli
KVM Kernel-based Virtual Machine - Tam sanallastirma teknolojisi
DDoS Distributed Denial of Service - Dagitik hizmet engelleme saldirisi
SSL/TLS Veri iletisimini sifreleyen guvenlik protokolu
TTFB Time to First Byte - Sunucu yanit suresi
CDN Content Delivery Network - Icerik dagitim agi
WAF Web Application Firewall - Web uygulama guvenligi duvari
IOPS Input/Output Operations Per Second - Disk performans olcusu
Uptime Sunucunun kesintisiz calisma suresi yuzdesi
Bandwidth Veri transfer kapasitesi

Bu terimleri anlamak, hosting ve sunucu hizmetlerini daha bilinçli secmenize yardimci olur. Detayli bilgi icin Buyukweb blog yazilarini takip edin veya teknik destek ekibimize danisIn.

Etiketler:

#redis#kurulum rehberi#sunucu#server yönetimi#sistem yönetimi

Bu yazıyı paylaş