Symfony Önbellek Bileşeni ile PHP’de Önbelleğe Alma Kurulumu

Symfony Önbellek Bileşeni ile PHP'de Önbelleğe Alma Kurulumu

Bugün size PHP uygulamalarınıza önbelleğe alma eklemenin kolay bir yolu olan Symfony Cache bileşenini göstereceğim. Bu, sayfa yükleme süresini azaltarak uygulamanızın genel performansını artırmaya yardımcı olur.

Symfony Önbellek Bileşeni

Symfony Cache bileşeni, PHP uygulamalarınızda önbelleğe almayı ayarlamanıza olanak tanır. Bileşenin kurulumu ve yapılandırılması çok kolaydır ve hızlı bir şekilde başlamanıza olanak tanır. Ayrıca, aşağıdaki listede gösterildiği gibi, aralarından seçim yapabileceğiniz çeşitli adaptörler sağlar:

  • veritabanı bağdaştırıcısı
  • dosya sistemi bağdaştırıcısı
  • memcached bağdaştırıcı
  • redis adaptörü
  • APCu adaptörü
  • ve dahası

Symfony Cache bileşenini kullanarak önbelleğe alma söz konusu olduğunda, aşina olmanız gereken birkaç terim vardır.

Symfony Cache bileşeni, iki farklı önbelleğe alma yaklaşımı arasından seçim yapmanızı sağlar.

PSR-6 Önbelleğe Alma

Önbellek havuzları ve önbellek öğeleri etrafında dönen genel bir önbellek sistemidir.

Başlangıç ​​olarak, önbellek öğesi saklanan içeriği ifade eder. Her öğe bir anahtar/değer çifti olarak depolanır. Önbellek öğeleri tarafından yönetilir önbellek havuzu, bu onları mantıksal olarak gruplandırır. Aslında, önbellek değerlerini değiştirmek için önbellek havuzunu kullanmanız gerekir.

Sonunda, bu önbellek bağdaştırıcısı bu, öğeleri önbellek arka ucunda depolamak için tüm ağır işleri yapar.

Önbellek Sözleşmeleri

Yeniden hesaplama geri aramalarına dayalı değerleri önbelleğe almanın basit ama daha güçlü bir yolu. Ayrıca yerleşik Stampede önleme ile birlikte gelir. Ayrıca, PSR-6 önbelleğe alma ile karşılaştırıldığında daha az kod gerektirdiği için önerilen yoldur.

Bu makalede, Symfony Cache bileşeninin gücünü nasıl açığa çıkarabileceğinizi anlamanın her iki yolunu da keşfedeceğiz. Her zamanki gibi, kurulum ve konfigürasyon ile başlayacağız ve ardından makalenin ikinci yarısında birkaç gerçek dünya örneğini keşfetmeye devam edeceğiz.

Kurulum ve Yapılandırma

Bu bölümde, Önbellek bileşenini kuracağız. Composer’ı sisteminize zaten yüklediğinizi varsayıyorum – Packagist’te bulunan Önbellek bileşenini yüklemek için buna ihtiyacınız olacak.

Composer’ı kurduktan sonra devam edin ve aşağıdaki komutu kullanarak Önbellek bileşenini kurun.

Bu bir yaratmalıydı besteci.json şöyle görünmesi gereken dosya:

Kurulum için bu kadar, ancak uygulamanıza nasıl eklemeniz gerekiyor? Bu sadece dahil etmek meselesi otomatik yükleme.php Aşağıdaki snippet’te gösterildiği gibi, Composer tarafından uygulamanızda oluşturulan dosya.

PSR-6 Önbelleğe Alma: Gerçek Dünyadan Bir Örnek

Bu bölümde, PSR-6 önbelleğe alma yöntemiyle içeriği önbelleğe almak için uygulamalarınızdaki Önbellek bileşenini nasıl kullanabileceğinizi gösteren bir örnek üzerinden gideceğiz.

Başlamak için, devam edelim ve index.php Aşağıdaki içeriğe sahip dosya.

Ana bölümlerine geçelim index.php amaçlarını anlamak için dosya.

Önbellek Havuzunu Oluşturun

Daha önce tartıştığımız gibi, önbelleğe alınan öğeler bir önbellek havuzunda depolanır. Ayrıca, her önbellek havuzu, belirli bir önbellek arka ucu ve bağdaştırıcı tarafından desteklenir. Örneğin, öğeleri dosya sistemi önbelleğinde depolamak istiyorsanız, dosya sistemi bağdaştırıcısının önbellek havuzunu başlatmanız gerekir.

için üç isteğe bağlı argüman sağlayabilirsiniz. FilesystemAdapter nesne:

  • önbellek girdileri oluşturmak istediğiniz ad alanı
  • önbellek öğeleri için saniye cinsinden bir ömür
  • önbelleğin depolanacağı dizin.

Dize Değerleri Nasıl Saklanır

Önbellek havuzunu zaten oluşturduğumuz için, önbellek öğelerini depolamak için kullanabiliriz.

İlk olarak, kullandık getItem ile önbellek öğesini getirme yöntemi demo_string anahtar. Daha sonra, kullandık isHit aradığımız değerin önbellek öğesinde zaten mevcut olup olmadığını kontrol etme yöntemi $demoString.

Bu, ilk kez getirdiğimiz için demo_string önbellek öğesi, isHit yöntem geri dönmelidir false. Daha sonra, kullandık set yöntemi $demoString önbellek değerini ayarlamak için nesne. Sonunda kurtardık $demoString öğeyi önbelleğe al $cachePool kullanarak önbellek havuzu save yöntem.

Şimdi öğeyi önbellekte sakladık, şimdi önbellekten nasıl getireceğimizi görelim.

Burada, kullandık hasItem Almadan önce önbellek havuzundaki önbellek öğesinin varlığını kontrol etme yöntemi.

Ardından, tüm önbellek öğelerini önbellek havuzundan nasıl sileceğimizi görelim:

Dizi Değerleri Nasıl Depolanır

Önceki bölümde, temel değerlerin önbellek havuzunda nasıl saklanacağını tartıştık. Aşağıdaki örnekte görebileceğiniz gibi, dizi değerlerini depolamak hemen hemen aynıdır.

Gördüğünüz gibi, tıpkı bir dizge için yaptığımız gibi, bir dizi değeriyle önbellek öğesini basitçe ayarlayabiliriz.

Ardından, belirli önbellek öğesini önbellek havuzundan nasıl sileceğimizi görelim.

Burada, kullandık deleteItem silme yöntemi demo_array önbellek havuzundan öğe.

Önbelleğe Alınmış Öğeler için Bir Son Kullanma Tarihi Nasıl Belirlenir

Şimdiye kadar, son kullanma tarihi olmayan öğeleri havuza önbelleğe aldık. Ancak, öğeleri genellikle önbellekte kalıcı olarak depolamak istemezsiniz. Örneğin, önbellek öğelerini periyodik olarak yenilemek istiyorsunuz, bu nedenle süresi dolmuş önbellek öğelerini temizleyen bir mekanizmaya ihtiyacınız var.

Bu bölümde, son kullanma tarihiyle birlikte öğelerin önbellekte nasıl saklanacağını tartışacağız.

Yukarıdaki snippet’te görebileceğiniz gibi, kullanabilirsiniz. expiresAfter önbelleğe alınan öğe için bir son kullanma tarihi belirleme yöntemi. İlk argümanda bir öğeyi önbelleğe almak istediğiniz saniye sayısını iletebilirsiniz. expiresAfter yöntem.

Örneğimizde, kullandık sleep önbelleğe alınan öğenin önbellek havuzunda hala kullanılabilir olup olmadığını test etme yöntemi.

Devam edin ve nasıl çalıştığını görmek için test edin!

Önbellek Sözleşmeleri: Gerçek Dünyadan Bir Örnek

Bu bölümde, Önbellek Sözleşmelerinin yardımıyla içeriği önbelleğe almak için uygulamalarınızdaki Önbellek bileşenini nasıl kullanabileceğinizi gösteren bir örnek üzerinden gideceğiz.

Başlamak için, devam edelim ve cache_contracts.php Aşağıdaki içeriğe sahip dosya.

Ana bölümlerine geçelim cache_contracts.php amaçlarını anlamak için dosya.

Önbellek Sözleşmeleri ile Önbellek Değerleri Nasıl Depolanır

Her şeyden önce, Önbellek Sözleşmelerinin yalnızca iki yöntemi desteklediğini belirtmek önemlidir. bu get yöntemi, önbellek değerlerini almak ve ayarlamak için kullanılır. Öte yandan, delete yöntemi önbellek öğesini silmek için kullanılır.

Şimdi, aynı anda önbellek değerini ayarlamak ve almak için kullanılan aşağıdaki snippet’e hızlıca bakalım.

Her şeyden önce, önbellek havuzu örneğini başlatmanız gerekir. Artık bu nesneyi Cache Contracts yardımıyla önbellek değerlerini ayarlamak için kullanabiliriz. Gördüğünüz gibi, ilk argüman bir önbellek anahtarıdır ve ikinci argüman, yalnızca anahtar önbellek havuzunda bulunmazsa yürütülen bir PHP çağrılabilir. Çağrılabilir PHP, önbellek değerini oluşturmaktan ve onu döndürmekten de sorumludur.

Önbellek Sözleşmeleri Olan Önbelleğe Alınmış Öğeler için Son Kullanma Tarihi Nasıl Belirlenir

Son kullanma tarihi ile birlikte önbellek öğesini ayarlamak çok kolaydır. Aşağıdaki parçaya hızlıca bakalım.

Gördüğünüz gibi, kullandık expiresAfter yöntemi $item son kullanma tarihini ayarlamak için nesne.

Önbellek Etiketleri ile Önbellek Öğelerini Geçersiz Kılın

Önbellek öğeleri oluşturduğunuzda, bunlara bir etiket ekleyebilirsiniz. Bu, mantıksal olarak gruplandırılmış önbellek öğelerini aynı etiket altında bir arada tutmak gibidir. Birbiriyle ilişkili tüm önbellek öğelerini silmek istediğinizde ve bunları anahtarlarla silmek istemiyorsanız gerçekten kullanışlıdır.

Aşağıdaki parçaya hızlıca bakalım.

Önbellek öğelerine etiket eklemek istediğinizde, etikete duyarlı önbellek bağdaştırıcısını kullanmanız gerektiğini unutmayın. Böylece, kullandık FilesystemTagAwareAdapter bağdaştırıcının etikete duyarlı sürümü olan FilesystemAdapter adaptör.

Ardından, kullanmanız gerekir tag önbellek öğesine bir etiket ekleme yöntemi. Ve son olarak, kullanabilirsiniz invalidateTags bağdaştırıcı sınıfının belirli önbellek etiketleriyle ilişkili önbellek girişlerini kaldırma yöntemi.

Projelerinizde önbellek yönetimi için Önbellek Sözleşmelerini bu şekilde kullanabilirsiniz.

Çözüm

Bugün, PHP uygulamalarınızda önbelleklemeyi ayarlamanıza izin veren Symfony Cache bileşenine kısaca göz attık. Ayrıca, birlikte kullanmak istediğiniz arka uç türünü seçme esnekliği sağlayan çeşitli önbellek adaptörlerini de destekler.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.