class Laravel Redis ve Cache extends Post

@created_at( "2025-01-14 10:32" ) @tag( "redis" ) @tag( "cache" )
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: - **Windows**: - Redis’in resmi Windows portunu [Memurai](https://www.memurai.com/) ya da [Redis for Windows](https://github.com/tporadowski/redis/releases) adresinden indirebilirsiniz. - **MacOS**:
brew install redis
- **Linux**:
sudo apt update
  sudo apt install redis-server
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: - **Linux**:
sudo apt install php-redis
- **Windows**: PHP eklentisini [buradan](https://windows.php.net/downloads/pecl/releases/redis/) indirip `php.ini` dosyanızda etkinleştirin. --- ### 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.