Gör långsam, repetitiv datahämtning att din app inte presterar? Försök att cachelagra för att lösa problemet.
Att bygga snabba och pålitliga webbapplikationer är viktigare än någonsin i dagens digitala landskap. Användare har höga förväntningar när det kommer till webbplatsens prestanda. Långsamma laddningstider eller stillestånd kan leda till kundfrustration och skada på ryktet.
Ett sätt att uppnå snabba och pålitliga webbapplikationer är att använda caching. Det finns olika typer av cache du kan implementera i din applikation, inklusive cache i minnet, webbläsarcache, databascache och CDN-cache.
Vad är cachning och hur skiljer sig cachning i minnet? Hur kan du öka din Nest.js-applikations prestanda med cachelagring i minnet?
Vad är cachelagring?
Cachning är processen att lagra data som ofta används på en tillfällig plats för att förbättra prestandan för en applikation eller ett system. Den cachade datan kan snabbt hämtas och visas för användaren utan att behöva hämta den igen från den ursprungliga källan.
Applikationer använder caching för att leverera innehåll snabbare och effektivare, vilket leder till en bättre användarupplevelse och minskad belastning på de underliggande systemen. De vanligaste typerna av cachning inkluderar cachelagring i minnet, CDN-cache, webbläsarcache och databascache.
Vad är in-memory cache?
In-memory caching är en typ av cachning där ett program tillfälligt lagrar data som ofta används i serverns minne. Istället för att göra dyra databassamtal varje gång appen bearbetar en begäran om åtkomst till data, kan den hämta dessa data från minnet.
Att cachelagra data i minnet innebär att applikationen kommer åt data snabbare, och detta resulterar i förbättrad prestanda.
Så här implementerar du Caching i minnet i en Nest.js-applikation
Nest.js har inbyggt stöd för cachning med drivrutiner som Redis, Memcached och många fler. Men för enkel förståelse använder den här artikeln den inbyggda minnescachemodulen som Nest.js tillhandahåller.
Det här avsnittet förutsätter att du redan har en Nest.js-applikation skapad med Nest CLI-kommandot: bo ny [appnamn]. För att implementera cachen i minnet i en slutpunkt bör du redan ha modul-, tjänst- och kontrollfilerna, eller generera dem med hjälp av bogenerera kommando. Du kan ta reda på mer om bo generera i Nest CLI-dokumentation.
Det första steget för att implementera en cache i minnet är att importera CacheModul från @nestjs/common i din slutpunkts modul enligt nedan:
// example.module.ts
importera { Modul, CacheModule } från'@nestjs/common';@Modul({
importer: [CacheModule.register()],
})
exporteraklass Exempelmodul {}
Därefter måste du importera CacheService och injicera det i Nest.js-tjänsten som kommunicerar med en databas som MongoDB. Du kan se hur följande kodexempel gör detta:
// example.service.ts
importera { Injicerbar, CacheService } från'@nestjs/common';@Injicerbar()
exporteraklass Exempeltjänst {
konstruktör(privat skrivskyddad cacheService: CacheService) {}asynkron hämta data(): Löfte<några> {
konst cacheKey = 'min data';
låta data = väntadetta.cacheService.get (cacheKey);om (!data) {
// hämta data från databas eller API
data = väntadetta.fetchData();// cachedata för framtida bruk
väntadetta.cacheService.set (cacheKey, data, { ttl: 60 });
}lämna tillbaka data;
}
privatasynkron fetchData(): Löfte<några> {
// hämta data från databasen
}
}
I exempelkoden ovan visas Exempeltjänst använder CacheService som ett beroende. De hämta data metod kontrollerar om data är tillgänglig i cachen med en nyckel (cacheKey), om data inte finns i cacheminnet, går den vidare för att hämta den från databasen och cacha den för senare användning.
De CacheService har en uppsättning metod som tar in ett objekt som ett argument. I det här fallet kan du se hur värdet { ttl: 60 } ställer in tiden för att leva till 60 sekunder. Detta innebär att tjänsten automatiskt tar bort cachad data efter en minut.
Några viktiga fördelar med cachelagring i minnet inkluderar följande:
- Förbättrad skalbarhet: In-memory caching kan hjälpa till att förbättra skalbarheten av applikationer genom att minska belastningen på den underliggande datakällan.
- Snabbare svarstid: Cachning av data som ofta används i minnet minskar tiden det tar att hämta data, vilket resulterar i snabbare svarstider.
- Bättre användarupplevelse: Snabbare svarstider och förbättrad skalbarhet kan hjälpa till att ge en bättre användarupplevelse genom att minska väntetiden och förbättra applikationens övergripande prestanda.
- Minskade kostnader: Genom att minska belastningen på datakällan kan cachelagring i minnet hjälpa till att minska kostnaden för att köra programmet.
Optimera Nest.js-applikationer med cachelagring i minnet
In-memory caching är ett mycket effektivt sätt att förbättra den övergripande applikationens prestanda. Du har sett hur man implementerar en cache i minnet i Nest.js och hur det förbättrar skalbarheten och användarupplevelsen. Det kan också förbättra svarstiden och minska kostnaderna för att köra din applikation.
Försök att använda konceptet med cachelagring till praktisk användning när du bygger din nästa Nest.js API eller applikation.