sunucuhataları
teknik çözüm merkezi
Ara Giriş Yap Üye Ol
🏠 Ana Sayfa 📚 Kurulum Rehberleri
Kategoriler
🌐 Web Sunucuları 🐧 İşletim Sistemleri 📦 Sanallaştırma & VPS 🖥️ Kontrol Panelleri 🔒 SSL & Güvenlik 📝 CMS & Uygulamalar 🗄️ Veritabanı 📧 Mail Sunucusu 🗨️ Forum ℹ️ Hakkımızda 📧 İletişim
Giriş Yap Üye Ol
Ana Sayfa Veritabanı Redis Kurulumu Memcached Kurulumu ve PHP Entegrasyonu: Ubuntu
🔴 Redis Kurulumu

Memcached Kurulumu ve PHP Entegrasyonu: Ubuntu

Ubuntu'da Memcached kurulumu, PHP memcached extension ve WordPress object cache entegrasyonu ile performans artırma.

📅 16 Mayıs 2025 👁 5 görüntülenme ⏱ 3 dk okuma
𝕏 Paylaş
📋 İçindekiler göster/gizle

Memcached Nedir?

Memcached, yüksek performanslı, dağıtık bellek tabanlı bir nesne önbelleği sistemidir. Veritabanı sorgularının, API yanıtlarının ve hesaplama sonuçlarının RAM'de saklanmasını sağlayarak sunucu yükünü önemli ölçüde azaltır. Facebook, Wikipedia ve YouTube gibi büyük ölçekli platformlar Memcached'i milyarlarca istek için kullanmaktadır.

Redis ile karşılaştırıldığında Memcached daha basit ve saf bir önbellekleme çözümüdür: kalıcılık (persistence), replikasyon veya veri tipleri desteği sunmaz; ancak sadece önbellekleme yapılacaksa daha az kaynak kullanır. WordPress, Drupal ve Laravel ile kolayca entegre edilebilir.

Ubuntu 22.04'te Memcached Kurulumu

sudo apt update
sudo apt install memcached libmemcached-tools -y
sudo systemctl start memcached
sudo systemctl enable memcached
sudo systemctl status memcached

Memcached Yapılandırması

sudo nano /etc/memcached.conf
-d                          # Daemon modunda çalış
-m 256                      # 256MB bellek kullan
-p 11211                    # Port
-u memcache                 # Kullanıcı
-l 127.0.0.1               # Sadece localhost (güvenlik için)
-c 1024                     # Maksimum bağlantı sayısı
-t 4                        # Thread sayısı (CPU çekirdeği kadar)
-I 5m                       # Maksimum item boyutu 5MB
sudo systemctl restart memcached

PHP Memcached Extension Kurulumu

sudo apt install php8.1-memcached -y
sudo systemctl restart php8.1-fpm
# Kurulumu doğrula:
php -m | grep memcached

PHP ile Memcached Kullanımı

<?php
// Memcached bağlantısı
$mc = new Memcached();
$mc->addServer('127.0.0.1', 11211);

// Değer saklama (TTL: 1 saat = 3600 saniye)
$mc->set('kullanici_123', ['ad' => 'Ahmet', 'email' => 'ahmet@example.com'], 3600);

// Değer okuma
$kullanici = $mc->get('kullanici_123');
if ($mc->getResultCode() === Memcached::RES_NOTFOUND) {
    // Önbellekte yok, veritabanından al
    $kullanici = getKullaniciBD(123);
    $mc->set('kullanici_123', $kullanici, 3600);
}

// Değer silme
$mc->delete('kullanici_123');

// Tüm önbelleği temizle (DİKKATLİ KULLANIN)
$mc->flush();
?>

Veritabanı Sorgusu Önbellekleme Örneği

<?php
function getYazilar(PDO $db, Memcached $mc): array {
    $cacheKey = 'yazilar_listesi';
    $yazilar = $mc->get($cacheKey);

    if ($mc->getResultCode() === Memcached::RES_NOTFOUND) {
        $stmt = $db->query("SELECT * FROM posts ORDER BY created_at DESC LIMIT 20");
        $yazilar = $stmt->fetchAll(PDO::FETCH_ASSOC);
        $mc->set($cacheKey, $yazilar, 300); // 5 dakika önbellekle
    }

    return $yazilar;
}
?>

WordPress ile Object Cache Entegrasyonu

WordPress için W3 Total Cache veya direkt object-cache.php ile Memcached kullanılabilir:

# W3 Total Cache eklentisini kur (WordPress admin'den)
# Genel Ayarlar > Object Cache: Memcached seç
# Server: 127.0.0.1:11211

# Veya manuel object-cache.php
sudo nano /var/www/wordpress/wp-content/object-cache.php
<?php
// Basit WordPress Memcached Object Cache
$mc = new Memcached();
$mc->addServer('127.0.0.1', 11211);
// wp_cache_add, wp_cache_get, wp_cache_set fonksiyonlarını tanımlayın
?>

Laravel ile Memcached Cache Driver

# .env dosyasında:
CACHE_DRIVER=memcached
MEMCACHED_HOST=127.0.0.1
MEMCACHED_PORT=11211
# config/cache.php içinde memcached sunucuları:
'memcached' => [
    'driver' => 'memcached',
    'persistent_id' => env('MEMCACHED_PERSISTENT_ID'),
    'servers' => [
        [
            'host' => env('MEMCACHED_HOST', '127.0.0.1'),
            'port' => env('MEMCACHED_PORT', 11211),
            'weight' => 100,
        ],
    ],
],
# Laravel'de kullanım:
Cache::put('anahtar', 'deger', 3600);
$deger = Cache::get('anahtar');
Cache::forget('anahtar');

Memcached Durumunu İzleme

# memcstat ile temel istatistikler
memcstat --servers=127.0.0.1:11211

# Telnet ile bağlanma
telnet localhost 11211
stats
stats items
stats slabs
quit

Sık Karşılaşılan Sorunlar

Bağlantı Reddedildi

sudo systemctl status memcached
sudo netstat -tlnp | grep 11211
# Sadece 127.0.0.1'den bağlanabildiğinizden emin olun

PHP Extension Yüklenmedi

php -m | grep memcach
# Eğer yoksa:
sudo apt install php8.1-memcached
sudo systemctl restart php8.1-fpm nginx

Sonuç

Ubuntu 22.04'te Memcached kurulumu, PHP entegrasyonu ve WordPress/Laravel ile kullanımını öğrendiniz. Veritabanı sorgularını ve hesaplama sonuçlarını RAM'de önbellekleyerek sunucu yanıt sürelerini dramatik biçimde azaltabilirsiniz.

🤔 Bu kurulumda sorun mu yaşıyorsunuz?

Hata mesajınızı kopyalayıp foruma konu açın. Topluluğumuz size özel durumunuza göre yardımcı olacaktır.

🗨️ Foruma Katıl & Yardım Al

Yorumlar

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

Yorum Yap

Yorumunuz onaylandıktan sonra yayınlanır.