A lassú, ismétlődő adatlekérés miatt az alkalmazás alulteljesít? Próbálja meg a gyorsítótárat a probléma megoldásához.

A gyors és megbízható webalkalmazások készítése fontosabb, mint valaha a mai digitális környezetben. A felhasználók nagy elvárásokat támasztanak a webhely teljesítményével kapcsolatban. A lassú betöltési idők vagy leállások az ügyfelek frusztrációjához és jó hírnevének károsodásához vezethetnek.

A gyors és megbízható webalkalmazások elérésének egyik módja a gyorsítótár használata. Különféle gyorsítótárak használhatók az alkalmazásban, beleértve a memórián belüli gyorsítótárat, a böngésző gyorsítótárát, az adatbázis-gyorsítótárat és a CDN-gyorsítótárat.

Mi az a gyorsítótárazás, és miben különbözik a memórián belüli gyorsítótárazás? Hogyan növelheti Nest.js alkalmazásának teljesítményét a memórián belüli gyorsítótárazással?

Mi az a gyorsítótárazás?

A gyorsítótárazás a gyakran használt adatok ideiglenes helyen történő tárolásának folyamata az alkalmazás vagy rendszer teljesítményének javítása érdekében. A gyorsítótárazott adatok gyorsan lekérhetők és a felhasználó rendelkezésére bocsáthatók anélkül, hogy újra le kellene kérni őket az eredeti forrásból.

instagram viewer

Az alkalmazások gyorsítótárazást használnak a tartalom gyorsabb és hatékonyabb továbbítására, ami jobb felhasználói élményhez és a mögöttes rendszerek terhelésének csökkenéséhez vezet. A gyorsítótárazás leggyakoribb típusai közé tartozik a memórián belüli gyorsítótárazás, CDN gyorsítótár, böngésző gyorsítótár és adatbázis gyorsítótár.

Mi az In-Memory Caching?

A memórián belüli gyorsítótárazás egy olyan típusú gyorsítótárazás, amelyben egy alkalmazás ideiglenesen tárolja a gyakran használt adatokat a szerver memóriájában. Ahelyett, hogy az alkalmazás minden alkalommal drága adatbázishívásokat kezdeményezne, amikor feldolgozza az adatokhoz való hozzáférési kérelmet, lekérheti ezeket az adatokat a memóriából.

Az adatok memóriában tárolt gyorsítótárazása azt jelenti, hogy az alkalmazás gyorsabban éri el az adatokat, és ez jobb teljesítményt eredményez.

A memórián belüli gyorsítótárazás megvalósítása egy Nest.js alkalmazásban

A Nest.js beépített támogatja a gyorsítótárazást olyan illesztőprogramok használatával, mint a Redis, a Memcached és még sok más. A könnyebb érthetőség érdekében azonban ez a cikk a Nest.js által biztosított beépített memória-gyorsítótár modult használja.

Ez a szakasz feltételezi, hogy már rendelkezik a Nest CLI paranccsal létrehozott Nest.js alkalmazással: új beágyazás [alkalmazás neve]. A memórián belüli gyorsítótár végpontban való megvalósításához már rendelkeznie kell a modul-, a szolgáltatás- és a vezérlőfájlokkal, vagy elő kell állítania őket a fészekgenerál parancs. Többet megtudhat róla fészket generál ban,-ben Nest CLI dokumentáció.

A memórián belüli gyorsítótár megvalósításának első lépése a CacheModule tól től @nestjs/common a végpont moduljába az alábbiak szerint:

// example.module.ts
import { Modul, CacheModule } tól től"@nestjs/common";

@Modul({
importálás: [CacheModule.register()],
})

exportosztály Példamodul {}

Ezután importálnia kell CacheService és adja be a Nest.js szolgáltatásba, amely kommunikál a adatbázis, mint a MongoDB. Láthatja, hogyan teszi ezt a következő kódpélda:

// example.service.ts
import { Injektálható, CacheService } tól től"@nestjs/common";

@Injektálható()
exportosztály Példaszolgáltatás {
konstruktőr(magán csak olvasható cacheService: CacheService) {}

async getData(): Ígéret<Bármi> {
const cacheKey = 'adataim';
hagyja adatok = várjaez.cacheService.get (cacheKey);

ha (!adatok) {
// adatok lekérése adatbázisból vagy API-ból
adatok = várjaez.fetchData();

// az adatok gyorsítótárazása későbbi használatra
várjaez.cacheService.set (cacheKey, data, { ttl: 60 });
}

Visszatérés adat;
}

magánasync fetchData(): Ígéret<Bármi> {
// adatok lekérése az adatbázisból
}
}

A fenti példakódban a Példaszolgáltatás használ CacheService mint függőséget. A getData A metódus egy kulcs segítségével ellenőrzi, hogy az adatok elérhetőek-e a gyorsítótárban (cacheKey), ha az adatok nincsenek a gyorsítótárban, akkor lekéri azokat az adatbázisból, és gyorsítótárazza későbbi használatra.

A CacheService van egy készlet metódus, amely egy objektumot vesz fel argumentumként. Ebben az esetben láthatja, hogy az érték { ttl: 60 } az élettartamot 60 másodpercre állítja be. Ez azt jelenti, hogy a szolgáltatás egy perc múlva automatikusan eltávolítja a gyorsítótárazott adatokat.

A memórián belüli gyorsítótárazás néhány fontos előnye a következők:

  • Továbbfejlesztett méretezhetőség: A memórián belüli gyorsítótárazás javíthatja az alkalmazások méretezhetőségét azáltal, hogy csökkenti a mögöttes adatforrás terhelését.
  • Gyorsabb válaszidő: A gyakran elért adatok gyorsítótárazása a memóriában csökkenti az adatok lekéréséhez szükséges időt, ami gyorsabb válaszidőt eredményez.
  • Jobb felhasználói élmény: A gyorsabb válaszidő és a jobb méretezhetőség jobb felhasználói élményt nyújthat a várakozási idő csökkentésével és az alkalmazás általános teljesítményének javításával.
  • Csökkentett költségek: Az adatforrás terhelésének csökkentésével a memórián belüli gyorsítótárazás csökkentheti az alkalmazás futtatásának költségeit.

A Nest.js alkalmazások optimalizálása a memórián belüli gyorsítótárazással

A memórián belüli gyorsítótárazás nagyon hatékony módja az alkalmazások általános teljesítményének javításának. Látta, hogyan valósíthat meg memórián belüli gyorsítótárat a Nest.js-ben, és hogyan javítja a méretezhetőséget és a felhasználói élményt. Ezenkívül javíthatja a válaszidőt, és csökkentheti az alkalmazás futtatásának költségeit.

A következő Nest.js API vagy alkalmazás elkészítésekor próbálja meg gyakorlatiasan alkalmazni a gyorsítótárazás fogalmát.