|
Laravel, performansı artırmak ve sık kullanılan verileri hızlı bir şekilde sunmak için önbellekleme mekanizmaları sunar. Redis, bu mekanizmalardan biri olarak öne çıkar. Laravel ve Redis birlikte kullanıldığında, uygulama performansının çok daha üygün bir seviyeye çekilmesi mümkün olur.
Redis Nedir?
Redis (“Remote Dictionary Server”), bir key-value (anahtar-değer) tabanlı veritabanıdır. Redis genellikle aşağıdaki amaçlarla kullanılır:
- Önbellekleme: Veri hızlıca saklanabilir ve alınabilir.
- Oturum Yönetimi: Kullanıcı oturumlarını saklamak için.
- Mesaj Kuyruğu: Gerçek zamanlı işlemlerde mesaj kuyruklama için.
- Gerçek Zamanlı Analiz: Veri analizlerinde ve sayaç yönetiminde.
Laravel'de Redis Kurulumu
1. Redis Yükleme
Redis'i bilgisayarınıza yükleyin:
Redis sunucusunu başlatmak için:
redis-server
2. Laravel Redis Paketini Kurma
Laravel’de Redis’i kullanmak için predis/predis ya da phpredis paketlerinden birini kurabilirsiniz.
Predis Kurulumu:
composer require predis/predis
PhpRedis Kullanımı:
PhpRedis genellikle performans olarak daha iyidir ve PHP’nin bir eklentisi olarak çalışır. Bu eklentiyi PHP’nize dahil etmek için:
Redis'i Laravel ile Kullanma
1. Redis Ayarlarını Yapılandırma
Laravel, Redis ayarlarınızı config/database.php dosyasında tanımlar.
'redis' => [
'client' => env('REDIS_CLIENT', 'predis'),
'default' => [
'url' => env('REDIS_URL'),
'host' => env('REDIS_HOST', '127.0.0.1'),
'password' => env('REDIS_PASSWORD', null),
'port' => env('REDIS_PORT', 6379),
'database' => env('REDIS_DB', 0),
],
'cache' => [
'url' => env('REDIS_URL'),
'host' => env('REDIS_HOST', '127.0.0.1'),
'password' => env('REDIS_PASSWORD', null),
'port' => env('REDIS_PORT', 6379),
'database' => env('REDIS_CACHE_DB', 1),
],
],
2. Environment (.env) Ayarları
.env dosyanıza Redis ayarlarını ekleyin:
REDIS_CLIENT=predis
REDIS_HOST=127.0.0.1
REDIS_PORT=6379
REDIS_PASSWORD=null
REDIS_DB=0
REDIS_CACHE_DB=1
Laravel’de Önbellekleme (Caching)
1. Önbellek Sürücüsünü Redis Olarak Ayarlama
Laravel, önbellekleme için varsayılan sürücü Redis olacak şekilde ayarlanabilir. Bunun için config/cache.php dosyasında redis kullanılması gerektiğini belirtin:
'default' => env('CACHE_DRIVER', 'redis'),
.env dosyası:
CACHE_DRIVER=redis
2. Önbelleğe Veri Ekleme
use Illuminate\Support\Facades\Cache;
// 5 dakika boyunca saklanacak bir veri ekleyelim
Cache::put('anahtar', 'değer', now()->addMinutes(5));
3. Önbellekten Veri Alma
$deger = Cache::get('anahtar');
echo $deger; // Çıktı: değer
4. Varsayılan Değer Belirleme
Anahtar bulunamadığında bir varsayılan değer döndürmek için:
$deger = Cache::get('olmayan_anahtar', 'varsayilan_deger');
echo $deger; // Çıktı: varsayilan_deger
5. Veriyi Kalıcı Olarak Saklama
Cache::forever('anahtar', 'kalici_deger');
6. Önbellekten Veri Silme
Cache::forget('anahtar');
7. Önbelleği Tamamen Temizleme
Tüm önbelleği temizlemek için:
php artisan cache:clear
Laravel’de Redis Kullanarak Oturum Yönetimi
Laravel’de oturum yönetimi Redis ile yapılandırılabilir. Bunun için config/session.php dosyasındaki SESSION_DRIVER ayarını şu şekilde değiştirin:
'driver' => env('SESSION_DRIVER', 'redis'),
.env dosyası:
SESSION_DRIVER=redis
Queue (Kuyruk) Mekanizmasında Redis Kullanımı
Laravel’de kuyruk sistemini Redis ile yönetebilirsiniz.
1. Queue Sürücüsünü Redis Olarak Ayarlama
config/queue.php dosyasında Redis’i sürücü olarak belirtin:
'default' => env('QUEUE_CONNECTION', 'redis'),
.env dosyası:
QUEUE_CONNECTION=redis
2. Queue Worker'ları Başlatma
Kuyruk işlemlerini Redis üzerinde başlatmak için:
php artisan queue:work
Redis Komutları ile Veri Yönetimi
Laravel’de Redis’i direkt kullanarak key-value verileri yönetebilirsiniz:
Veri Ekleme ve Alma
use Illuminate\Support\Facades\Redis;
// Veri ekleme
Redis::set('anahtar', 'değer');
// Veri alma
echo Redis::get('anahtar');
Sayaç Artırma ve Azaltma
Redis::incr('sayaç'); // Sayaçı 1 artır
Redis::decr('sayaç'); // Sayaçı 1 azalt
Sonuç
Laravel Redis entegrasyonu, performansı optimize etmek ve uygulama verimliliğini artırmak için son derece önemli bir özelliktir. Önbellekleme, oturum yönetimi ve kuyruk sistemleri Redis ile çok daha hızlı ve etkili hale gelir. Yukarıdaki adımları takip ederek Laravel projelerinde Redis'i kolayca kullanabilirsiniz. |