Бавното, повтарящо се извличане на данни причинява ли приложението ви недостатъчна производителност? Опитайте да кеширате, за да разрешите проблема.

Изграждането на бързи и надеждни уеб приложения е по-важно от всякога в днешния дигитален пейзаж. Потребителите имат високи очаквания, когато става въпрос за ефективността на уебсайта. Бавното време за зареждане или прекъсването може да доведе до разочарование на клиентите и увреждане на репутацията.

Един от начините за постигане на бързи и надеждни уеб приложения е чрез използването на кеширане. Има различни видове кешове, които можете да внедрите във вашето приложение, включително кеш в паметта, кеш на браузъра, кеш на базата данни и CDN кеш.

Какво е кеширане и каква е разликата между кеширането в паметта? Как можете да увеличите производителността на вашето Nest.js приложение с кеширане в паметта?

Какво е кеширане?

Кеширането е процес на съхраняване на често достъпни данни на временно място за подобряване на производителността на приложение или система. Кешираните данни могат бързо да бъдат извлечени и предоставени на потребителя, без да се налага да ги извличате отново от оригиналния източник.

instagram viewer

Приложенията използват кеширане, за да доставят съдържание по-бързо и по-ефективно, което води до по-добро потребителско изживяване и намалено натоварване на основните системи. Най-често срещаните видове кеширане включват кеширане в паметта, CDN кеширане, кеширане на браузър и кеширане на база данни.

Какво е кеширане в паметта?

Кеширането в паметта е вид кеширане, при което приложение временно съхранява често достъпни данни в паметта на сървъра. Вместо да прави скъпи извиквания към база данни всеки път, когато приложението обработва заявка за достъп до данни, то може да извлече тези данни от паметта.

Кеширането на данните в паметта означава, че приложението има по-бърз достъп до данните и това води до подобрена производителност.

Как да внедрите кеширане в паметта в приложение Nest.js

Nest.js има вградена поддръжка за кеширане с помощта на драйвери като Redis, Memcached и много други. Въпреки това, за по-лесно разбиране, тази статия използва вградения кеш модул на паметта, който предоставя Nest.js.

Този раздел предполага, че вече имате приложение Nest.js, създадено с командата Nest CLI: гнездо ново [име на приложение]. За да внедрите кеша в паметта в крайна точка, трябва вече да имате файловете на модула, услугата и контролера или да ги генерирате с помощта на гнездогенерирам команда. Можете да научите повече за генериране на гнездо в Nest CLI документация.

Първата стъпка за внедряване на кеш в паметта е да импортирате CacheModule от @nestjs/общ в модула на вашата крайна точка, както се вижда по-долу:

// example.module.ts
импортиране {Модул, CacheModule} от„@nestjs/common“;

@Модул({
импортира: [CacheModule.register()],
})

износклас Примерен модул {}

След това трябва да импортирате CacheService и го инжектирайте в услугата Nest.js, която комуникира с a база данни като MongoDB. Можете да видите как следният пример на код прави това:

// example.service.ts
импортиране {Инжекционен, CacheService} от„@nestjs/common“;

@Инжекционен()
износклас ExampleService {
конструктор(частен cacheService само за четене: CacheService) {}

асинхронен getData(): обещание<всякакви> {
конст cacheKey = 'моите_данни';
позволявам данни = изчакайтетова.cacheService.get (cacheKey);

ако (!данни) {
// извличане на данни от база данни или API
данни = изчакайтетова.fetchData();

// кеширане на данни за бъдеща употреба
изчакайтетова.cacheService.set (cacheKey, данни, { ttl: 60 });
}

връщане данни;
}

частенасинхронен fetchData(): обещание<всякакви> {
// извличане на данни от база данни
}
}

В примерния код по-горе, ExampleService използва CacheService като зависимост. The getData методът проверява дали данните са налични в кеша с помощта на ключ (cacheKey), ако данните не са в кеша, той продължава да ги извлича от базата данни и ги кешира за по-късна употреба.

The CacheService има комплект метод, който приема обект като аргумент. В този случай можете да видите как стойността { ttl: 60 } задава времето за живот на 60 секунди. Това означава, че услугата автоматично ще премахне кешираните данни след една минута.

Някои важни предимства на кеширането в паметта включват следното:

  • Подобрена скалируемост: Кеширането в паметта може да помогне за подобряване на мащабируемостта на приложенията чрез намаляване на натоварването на основния източник на данни.
  • По-бързо време за реакция: Кеширането на често достъпни данни в паметта намалява времето, необходимо за извличане на данните, което води до по-бързо време за реакция.
  • По-добро потребителско изживяване: По-бързите времена за реакция и подобрената мащабируемост могат да помогнат за осигуряване на по-добро потребителско изживяване чрез намаляване на времето за изчакване и подобряване на цялостната производителност на приложението.
  • Намалени разходи: Чрез намаляване на натоварването на източника на данни, кеширането в паметта може да помогне за намаляване на разходите за изпълнение на приложението.

Оптимизиране на Nest.js приложения с кеширане в паметта

Кеширането в паметта е много ефективен начин за подобряване на цялостната производителност на приложението. Видяхте как да внедрите кеш в паметта в Nest.js и как той подобрява скалируемостта и потребителското изживяване. Може също така да подобри времето за реакция и да намали разходите за изпълнение на вашето приложение.

Опитайте да използвате концепцията за кеширане на практика, когато създавате следващия си Nest.js API или приложение.