Laravel Cache Kullanımı – PUT-HAS-GET
Laravel’de SQL olarak iki tip cache kullanmamız mümkün..
Query Cache
Bunlardan birincisi (herhangi bir içerik eklediğimiz de cache i sıfırlama özelliği bulunmuyor yanlız)
1 |
$users = DB::table('users')->remember(10)->get(); |
Remember olarak dakika cinsinden SQL sorgumuza remember giriyoruz.. Bu yöntemde sıfırlama yada sonradan veri eklediğinde güncelleme gibi bir şansımız yok.
Laravel Cache Yöntemi:
Cache put – get – forget yöntemiyle verilerimizi saklamak.. (App/Config/Cache.php içerisinden Kullanmak istediğiniz cache sistemini giriniz. File cache, memcached yada redis kullanabiliyorsunuz.. Tavsiyem redis)
1 2 3 4 5 6 7 8 9 10 11 12 13 |
if (Cache::has('anasayfacache')) { $mangalar = Cache::get('anasayfacache'); } else { $expiresAt = Carbon::now()->addMinutes(30); $mangalar = Manga::with('chapter')->orderBy('updated_at', 'desc') ->take(15) ->get(); Cache::put('anasayfacache', $mangalar, $expiresAt); } |
Örnek olarak anasayfada çekmek istediğim son 15 değişkeni ve bu değişkene bağlı olarak chapter tablosunu da birlikte cacheledim.
Elequent yapısıyla bağlı olan Manga- Chapter tablolarım vardı ve bunları kullanırken sadece manga yerine ilişkili olduğu diğer tabloyu da normal bir şekilde cachelemek istedim.
Cache has ile cache var mı yok mu kontrol ediyorum.. Eğer cache yoksa 30 Dakikalık bir sürede mangalar değişkenimi anasayfascache adında kaydedip kullanabiliyorum.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
public function anasayfa() { if (Cache::has('anasayfacache')) { $mangalar = Cache::get('anasayfacache'); } else { $expiresAt = Carbon::now()->addMinutes(30); $mangalar = Manga::with('chapter')->orderBy('updated_at', 'desc') ->take(15) ->get(); Cache::put('anasayfacache', $mangalar, $expiresAt); } return View::make('frontend.index', compact('mangalar')); } |
Örnek olarak yukarıda basit bir kullanımını gösterdim.
Unutmadan;
Örnek olarak yeni bir chapter eklediğimde bu cache i tekrar güncelletmek istiyorum.
1 |
Cache::forget('anasayfacache'); |
forget kodumu örnek olarak save kodundan sonra koyarak cache i bir şekilde sıfırlamış oldum.
cache ,laravel ,laravel cache kullanımı ,laravel get cache ,laravel has cache ,laravel put ,laravel put cache
Bir Cevap Yazın