Yavaş, yinelenen veri alma, uygulamanızın düşük performans göstermesine mi neden oluyor? Sorunu çözmek için önbelleğe almayı deneyin.

Hızlı ve güvenilir web uygulamaları oluşturmak, günümüzün dijital ortamında her zamankinden daha önemlidir. Web sitesi performansı söz konusu olduğunda kullanıcıların yüksek beklentileri vardır. Yavaş yükleme süreleri veya hizmet dışı kalma süresi, müşterilerin hayal kırıklığına uğramasına ve itibarının zarar görmesine neden olabilir.

Hızlı ve güvenilir web uygulamaları elde etmenin bir yolu önbelleğe alma kullanmaktır. Bellek içi önbellek, tarayıcı önbelleği, veritabanı önbelleği ve CDN önbelleği dahil olmak üzere uygulamanızda uygulayabileceğiniz farklı önbellek türleri vardır.

Önbelleğe alma nedir ve bellek içi önbelleğe almanın farkı nedir? Bellek içi önbelleğe alma ile Nest.js uygulamanızın performansını nasıl artırabilirsiniz?

Önbelleğe Alma Nedir?

Önbelleğe alma, bir uygulamanın veya sistemin performansını artırmak için sık erişilen verileri geçici bir konumda depolama işlemidir. Önbelleğe alınan veriler, orijinal kaynaktan tekrar almak zorunda kalmadan hızlı bir şekilde alınabilir ve kullanıcıya sunulabilir.

Uygulamalar, içeriği daha hızlı ve verimli bir şekilde iletmek için önbelleğe almayı kullanır, bu da daha iyi bir kullanıcı deneyimine ve temel sistemlerde daha az yüke yol açar. En yaygın önbelleğe alma türleri, bellek içi önbelleğe alma, CDN önbelleğe alma, tarayıcı önbelleğe alma ve veritabanı önbelleğe alma.

Bellek İçi Önbelleğe Alma Nedir?

Bellek içi önbelleğe alma, bir uygulamanın sık erişilen verileri sunucunun belleğinde geçici olarak depoladığı bir önbellek türüdür. Uygulama, verilere erişim isteğini her işlediğinde pahalı veritabanı çağrıları yapmak yerine, bu verileri bellekten getirebilir.

Verilerin bellekte önbelleğe alınması, uygulamanın verilere daha hızlı erişmesi anlamına gelir ve bu da performansın artmasına neden olur.

Bir Nest.js Uygulamasında Bellek İçi Önbelleğe Alma Nasıl Uygulanır?

Nest.js, Redis, Memcached ve çok daha fazlası gibi sürücüleri kullanarak önbelleğe alma için yerleşik desteğe sahiptir. Ancak, kolay anlaşılması için bu makale Nest.js'nin sağladığı yerleşik bellek önbellek modülünü kullanır.

Bu bölüm, zaten Nest CLI komutuyla oluşturulmuş bir Nest.js uygulamanız olduğunu varsayar: yeni [uygulama adı] yerleştir. Bellek içi önbelleği bir uç noktada uygulamak için modül, hizmet ve denetleyici dosyalarına zaten sahip olmanız veya bunları kullanarak oluşturmanız gerekir. yuvaüretmek emretmek. hakkında daha fazla bilgi edinebilirsiniz yuva oluşturmak içinde Nest CLI belgeleri.

Bellek içi önbellek uygulamanın ilk adımı, Önbellek Modülü itibaren @nestjs/ortak aşağıda görüldüğü gibi uç noktanızın modülüne:

// örnek.modül.ts
içe aktarmak { Modül, CacheModule } itibaren"@nestjs/ortak";

@Modül({
içe aktarma: [CacheModule.register()],
})

ihracatsınıf ÖrnekModül {}

Ardından, içe aktarmanız gerekir Önbellek Hizmeti ile iletişim kuran Nest.js hizmetine enjekte edin. MongoDB gibi veritabanı. Aşağıdaki kod örneğinin bunu nasıl yaptığını görebilirsiniz:

// örnek.hizmet.ts
içe aktarmak { Enjekte edilebilir, CacheService } itibaren"@nestjs/ortak";

@enjekte edilebilir()
ihracatsınıf Örnek Hizmet {
inşaatçı(özel salt okunur önbellek Hizmeti: Önbellek Hizmeti) {}

zaman uyumsuz getData(): Söz<herhangi> {
sabit önbellekAnahtarı = 'benim verim';
izin vermek veri = beklemekBu.cacheService.get (cacheKey);

eğer (!veri) {
// veri tabanından veya API'den veri çek
veri = beklemekBu.veriyi getir();

// verileri ileride kullanmak üzere önbelleğe alın
beklemekBu.cacheService.set (cacheKey, veri, { ttl: 60 });
}

geri dönmek veri;
}

özelzaman uyumsuz veriyi getir(): Söz<herhangi> {
// veri tabanından veri çek
}
}

Yukarıdaki örnek kodda, Örnek Hizmet kullanır Önbellek Hizmeti bir bağımlılık olarak. bu veri almak yöntem, bir anahtar kullanarak verilerin önbellekte mevcut olup olmadığını kontrol eder (önbellekAnahtarı), veriler önbellekte değilse, onu veritabanından almaya devam eder ve daha sonra kullanmak üzere önbelleğe alır.

bu Önbellek Hizmeti sahip ayarlamak bir nesneyi bağımsız değişken olarak alan yöntem. Bu durumda, değerin nasıl olduğunu görebilirsiniz. { ttl: 60 } yaşam süresini 60 saniyeye ayarlar. Bu, hizmetin önbelleğe alınan verileri bir dakika sonra otomatik olarak kaldıracağı anlamına gelir.

Bellek içi önbelleğe almanın bazı önemli avantajları şunları içerir:

  • Geliştirilmiş ölçeklenebilirlik: Bellek içi önbelleğe alma, temel alınan veri kaynağı üzerindeki yükü azaltarak uygulamaların ölçeklenebilirliğini artırmaya yardımcı olabilir.
  • Daha hızlı yanıt süresi: Sık erişilen verilerin bellekte önbelleğe alınması, verilerin alınması için gereken süreyi azaltarak daha hızlı yanıt süreleri sağlar.
  • Daha iyi kullanıcı deneyimi: Daha hızlı yanıt süreleri ve geliştirilmiş ölçeklenebilirlik, bekleme süresini azaltarak ve uygulamanın genel performansını iyileştirerek daha iyi bir kullanıcı deneyimi sağlanmasına yardımcı olabilir.
  • Azaltılmış maliyetler: Bellek içi önbelleğe alma, veri kaynağı üzerindeki yükü azaltarak, uygulamayı çalıştırma maliyetini düşürmeye yardımcı olabilir.

Bellek İçi Önbelleğe Alma ile Nest.js Uygulamalarını Optimize Etme

Bellek içi önbelleğe alma, genel uygulama performansını iyileştirmenin çok etkili bir yoludur. Nest.js'de bellek içi önbelleğin nasıl uygulanacağını ve bunun ölçeklenebilirliği ve kullanıcı deneyimini nasıl iyileştirdiğini gördünüz. Ayrıca yanıt süresini iyileştirebilir ve uygulamanızı çalıştırma maliyetlerini azaltabilir.

Bir sonraki Nest.js API'nizi veya uygulamanızı oluştururken önbelleğe alma kavramını pratik kullanıma sokmayı deneyin.