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.
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.