Verilere anında erişim
Redis kurarak sistemi hızlandırdık. Redis, verileri RAM bellekte tutar. Disk yerine RAM'den okumak 100 kat daha hızlı.
Sık kullanılan veriler: Kullanıcı bilgileri, şarkı meta verileri, playlist'ler... Hepsi Redis'te. Veritabanına gitmeden anında geliyor.
Oturum bilgileri de Redis'te. Binlerce kullanıcı aynı anda aktif olsa bile sistem yavaşlamaz.
Redis veriyi "anahtar-değer" çiftleri olarak tutar. Anahtar verirsin, değer gelir.
Dashboard > Sistem > Redis
Dashboard > Sistem > RAM
Ayarlar > Cache > Temizle
Dashboard > Redis Keys
Bir veri istendiğinde Laravel'in Cache facade'i devreye girer. Redis bağlantısı üzerinden veri aranır, yoksa veritabanından çekilip cache'lenir.
Cache::get('user:1234') çağrılır. Laravel Illuminate\Cache\RedisStore üzerinden Redis'e bağlanır.
Redis GET laravel_cache:user:1234 komutunu çalıştırır. RAM'den okuma ~0.5ms sürer.
Veri bulunursa unserialize() ile PHP objesine dönüştürülür ve döndürülür. DB'ye gitmeden sonuç alınır.
Cache::remember() kullanılıyorsa closure çalışır. User::find(1234) ile DB'den çekilir.
Redis SETEX key ttl value komutu ile veri ve TTL birlikte kaydedilir. serialize() ile string'e çevrilir.
Veri güncellenince Cache::forget('user:1234') çağrılır. Redis DEL komutuyla key'i siler.
Remote Dictionary Server. Bellekte veri tutan ultra hızlı veritabanı.
Anahtar-değer deposu. Veriyi isimle kaydedip isimle çağırma.
Verinin ne kadar süre bellekte kalacağı. Süre dolunca silinir.
Veri cache'te bulundu (hit) veya bulunamadı (miss).
user:1234
=>
{name:"Ahmet"}
song:5678
=>
{title:"..."}
sess:abc
=>
{user:1234}
cache:pl
=>
[songs...]