Giriş
Giriş
Bu makalede, Laravel uygulamalarında Cache::memo() metodunu kullanarak tekrar eden cache sorgularını azaltmayı öğreneceğiz.
Memoisation Nedir?
Memoisation Nedir?
Memoisation, yazılım ve web geliştirmede pahalı fonksiyon çağrılarının sonuçlarını hafızada geçici olarak saklama tekniğidir. Bu sayede ardışık çağrılarda önceden saklanan sonuç döndürülerek yeniden hesaplama ihtiyacı ortadan kalkar. Bu sayede, aynı değerin tekrar hesaplanmasını engelleyerek performansı önemli ölçüde artırabiliriz.
“Cache::memo()” ile Cache Memoisation
“Cache::memo()” ile Cache Memoisation
Aşağıdaki örnekte, aynı cache anahtarını birden fazla kez alıyoruz:
use Illuminate\Support\Facades\Cache;
$value = Cache::get('key'); // Redis cache'e erişim
$value = Cache::get('key'); // Tekrar cache'e erişim
$value = Cache::get('key'); // Yine cache'e erişim
Bu örnekte, aynı cache anahtarını birden fazla kez alarak Redis cache’ine birden fazla kez erişim sağlıyoruz. Bu durum, yüksek trafik alan bir uygulamada hız kaybına neden olabilir.
Şimdi Cache::memo() metodunu kullanarak bu sorunu nasıl çözebileceğimize bakalım:
use Illuminate\Support\Facades\Cache;
$value = Cache::memo()->get('key'); // Redis cache'e erişim
$value = Cache::memo()->get(); // Memoize edilmiş değer döner, cache'e erişim olmaz
$value = Cache::memo()->get(); // Memoize edilmiş değer döner, cache'e erişim olmaz
Bu örnekte, Cache::memo() ile yapılan ilk çağrı Redis cache’ine erişecek ve sonucu hafızaya alıp sonraki çağrılara döndürecektir. Bu sayede, aynı istek süresi içinde birden fazla kez Redis cache’e erişmeye gerek kalmayacaktır.
Farklı Cache Store’ları Kullanma
Farklı Cache Store’ları Kullanma
Varsayılan cache store, uygulamanızın ayarlarında tanımlanmıştır. Ancak, Cache::memo() metoduna bir argüman geçirerek farklı bir cache store belirtebilirsiniz:
use Illuminate\Support\Facades\Cache;
Cache::memo()->get(); // Redis cache'e erişim
Cache::memo()->get(); // Memoize edilmiş değer döner, cache'e erişim olmaz
Cache Değerlerini Değiştirme
Cache Değerlerini Değiştirme
Bir cache değerini Cache::memo() ile değiştirdiğinizde, memoize edilmiş değer unutulur. Bu durumda bir sonraki çağrıda cache store’a tekrar erişim sağlanır.
use Illuminate\Support\Facades\Cache;
Cache::memo()->put(, ); // Redis'e yazma
Cache::memo()->get(); // Redis cache'e erişim
Cache::memo()->get(); // Memoize edilmiş değer döner, cache'e erişim olmaz
Cache::memo()->put(, ); // Memoize edilmiş değeri unutur ve Redis'e yazar
Cache::memo()->get(); // Redis'e yeniden erişim
Cache::memo()->get(); // Memoize edilmiş değer döner, cache'e erişim olmaz
Sonuç
Sonuç
Bu makale, Laravel’de Cache::memo() metodunu nasıl kullanacağınızı ve uygulamalarınızdaki tekrarlayan cache sorgularını nasıl azaltabileceğinizi gösterdi. Memoisation kullanarak, uygulamalarınızın performansını önemli ölçüde artırabilirsiniz.
Kaynak: Orijinal Makale


