design

Laravel’de Caching Strategies: Redis ve Memcached 🚀⚡

April 2, 2025

Uygulamanız yavaş mı çalışıyor? Veritabanı sorguları performansınızı düşürüyor mu? Doğru caching stratejileriyle Laravel uygulamanızı 10 kat daha hızlı hale getirebilirsiniz! İşte Redis ve Memcached ile performans artırma rehberi:


Cache Neden Önemli? 🧠

  • DB sorgularını azaltır ⏳→⚡
  • Sayfa yükleme süresini düşürür
  • Sunucu yükünü hafifletir
  • Kullanıcı deneyimini iyileştirir


Redis vs Memcached: Hangisini Seçmeli? 🤔


Redis

✔️ Veri kalıcılığı (persistence)

✔️ Daha fazla veri türü (hash, set, sorted set)

✔️ Pub/Sub mesajlaşma

✔️ Lua scripting desteği

🚀 Kullanım Alanı: Karmaşık cache ihtiyaçları, oturum yönetimi, kuyruk sistemleri


Memcached 🚀

✔️ Basit key-value store

✔️ Çok yüksek performans

✔️ Çoklu sunucu desteği

✔️ Daha az bellek kullanımı

🚀 Kullanım Alanı: Basit cache ihtiyaçları, statik içerik önbelleğe alma


Laravel'de Cache Kullanımı 🔧

1. Kurulum

# Redis için
composer require predis/predis

# Memcached için
sudo apt-get install php-memcached


2. .env Ayarları

CACHE_DRIVER=redis # veya memcached

# Redis özel ayarları
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379


3. Temel Cache İşlemleri

// Cache'e veri yazma
Cache::put('key', 'value', $seconds);

// Cache'ten veri okuma
$value = Cache::get('key');

// Cache'ten veri silme
Cache::forget('key');

// Varsa cache'ten getir, yoksa oluştur
$value = Cache::remember('users', 3600, function () {
    return DB::table('users')->get();
});

Advanced Caching Stratejileri 🧠


1. Model Caching

// Tüm kullanıcıları 1 saat cache'le
$users = Cache::remember('users.all', 3600, function () {
    return User::all();
});


2. View Caching

@cache('posts.index', ['posts' => $posts], 60)
    <!-- View içeriği -->
@endcache


3. Route Caching

Route::get('/stats', function () {
    // ...
})->middleware('cache.headers:public;max_age=2628000;etag');


4. Tagging (Sadece Redis)

Cache::tags(['people', 'authors'])->put('John', $john, $seconds);
Cache::tags(['people', 'artists'])->put('Anne', $anne, $seconds);

// Tag'a göre temizleme
Cache::tags(['authors'])->flush();


Performans Ölçümleri 📊

SenaryoCache YokRedisMemcached10k DB sorgusu2.4s0.3s0.2sSayfa yükleme1.8s0.4s0.3sEşzamanlı istek12 req/s210 req/s230 req/s


Hangisini Kullanmalı? 🏆

  • Redis: Karmaşık uygulamalar, oturum yönetimi, kuyruk sistemleri
  • Memcached: Yüksek trafikli basit uygulamalar, statik içerik
Pro tip: Laravel Horizon kullanıyorsanız zaten Redis kurulu demektir, ekstra avantajlarından faydalanın! 🎯
Siz hangisini tercih ediyorsunuz? Yorumlarda deneyimlerinizi paylaşın! 👇
Bir sonraki yazımız: 🚀 [Laravel'de Localization: Çok Dilli Uygulama Geliştirme] - Global uygulamalar için ihtiyacınız olan her şey!**

#Laravel #Redis #Memcached #Performance #WebDevelopment ⚡

2 + 3 =