Kas aeglane ja korduv andmete toomine põhjustab teie rakenduse halva toimimise? Proovige probleemi lahendamiseks vahemällu salvestada.

Kiirete ja töökindlate veebirakenduste loomine on tänapäeva digimaastikul olulisem kui kunagi varem. Kasutajatel on veebisaidi toimivuse osas kõrged ootused. Aeglane laadimisaeg või seisakud võivad põhjustada klientide frustratsiooni ja maine kahjustamist.

Üks viis kiirete ja töökindlate veebirakenduste loomiseks on vahemällu kasutamine. Oma rakenduses saate rakendada erinevat tüüpi vahemälu, sealhulgas mälusisene vahemälu, brauseri vahemälu, andmebaasi vahemälu ja CDN-i vahemälu.

Mis on vahemällu salvestamine ja mille poolest mälusisene vahemälu erineb? Kuidas saate oma Nest.js-i rakenduse jõudlust mälusisese vahemälu abil suurendada?

Mis on vahemällu salvestamine?

Vahemällu salvestamine on sageli kasutatavate andmete ajutisse asukohta salvestamise protsess, et parandada rakenduse või süsteemi jõudlust. Vahemällu salvestatud andmeid saab kiiresti hankida ja kasutajale edastada, ilma et peaksite neid algallikast uuesti hankima.

instagram viewer

Rakendused kasutavad vahemällu, et sisu kiiremini ja tõhusamalt edastada, mis toob kaasa parema kasutuskogemuse ja vähendab aluseks olevate süsteemide koormust. Kõige tavalisemad vahemällu salvestamise tüübid on mälusisene vahemälu, CDN-i vahemälu, brauseri vahemällu salvestamine ja andmebaasi vahemällu salvestamine.

Mis on mälusisene vahemälu?

Mälusisene vahemällu salvestamine on vahemällu salvestamise tüüp, mille puhul rakendus salvestab ajutiselt sageli kasutatavad andmed serveri mällu. Selle asemel, et teha kalleid andmebaasikõnesid iga kord, kui rakendus töötleb andmetele juurdepääsu taotlust, saab see need andmed mälust tuua.

Andmete mälu vahemällu salvestamine tähendab, et rakendus pääseb andmetele kiiremini juurde ja selle tulemuseks on parem jõudlus.

Kuidas rakendada Nest.js-i rakenduses mälus vahemälu

Nest.js-il on sisseehitatud tugi vahemällu salvestamiseks, kasutades selliseid draivereid nagu Redis, Memcached ja palju muud. Arusaadavuse hõlbustamiseks kasutab see artikkel aga sisseehitatud vahemälu moodulit, mida Nest.js pakub.

See jaotis eeldab, et teil on juba Nest CLI käsuga loodud rakendus Nest.js. pesa uus [rakenduse nimi]. Mälusisese vahemälu rakendamiseks lõpp-punktis peavad teil juba olema mooduli-, teenuse- ja kontrollerifailid või genereerida need, kasutades pesagenereerida käsk. Saate rohkem teada saada pesa genereerida aastal Nesti CLI dokumentatsioon.

Esimene samm mälusisese vahemälu rakendamiseks on importida Vahemälumoodul alates @nestjs/common lõpp-punkti moodulisse, nagu allpool näha:

// näide.moodul.ts
importida { Moodul, CacheModule } alates„@nestjs/common”;

@Moodul({
impordid: [CacheModule.register()],
})

eksportidaklass Näidemoodul {}

Järgmisena peate importima CacheService ja sisestage see Nest.js-i teenusesse, mis suhtleb a andmebaas nagu MongoDB. Näete, kuidas järgmine koodinäide seda teeb:

// example.service.ts
importida { Injectable, CacheService } alates„@nestjs/common”;

@Süstitav()
eksportidaklass Näideteenus {
konstruktor(privaatne kirjutuskaitstud vahemäluteenus: CacheService) {}

asünkr getData(): Lubadus<ükskõik milline> {
konst cacheKey = "minu_andmed";
lase andmed = ootamasee.cacheService.get (cacheKey);

kui (!andmed) {
// andmete toomine andmebaasist või API-st
andmed = ootamasee.fetchData();

// vahemällu andmed edaspidiseks kasutamiseks
ootamasee.cacheService.set (cacheKey, data, { ttl: 60 });
}

tagasi andmed;
}

privaatneasünkr tooda andmed (): Lubadus<ükskõik milline> {
// andmete toomine andmebaasist
}
}

Ülaltoodud näitekoodis on Näideteenus kasutab CacheService sõltuvusena. The getData meetod kontrollib, kas andmed on vahemälus saadaval, kasutades võtit (cacheKey), kui andmeid vahemälus pole, hangib see need andmebaasist ja salvestab need hilisemaks kasutamiseks vahemällu.

The CacheService on seatud meetod, mis võtab objekti argumendina. Sel juhul näete, kuidas väärtus { ttl: 60 } seab elueaks 60 sekundit. See tähendab, et teenus eemaldab vahemällu salvestatud andmed automaatselt ühe minuti pärast.

Mõned mälusisese vahemälu olulised eelised on järgmised:

  • Täiustatud skaleeritavus: Mälusisene vahemällu salvestamine võib aidata parandada rakenduste skaleeritavust, vähendades aluseks oleva andmeallika koormust.
  • Kiirem reageerimisaeg: Sageli kasutatavate andmete vahemällu salvestamine vähendab andmete toomiseks kuluvat aega, mille tulemuseks on kiirem reageerimisaeg.
  • Parem kasutajakogemus: Kiiremad reageerimisajad ja parem mastaapsus võivad aidata pakkuda paremat kasutuskogemust, vähendades ooteaega ja parandades rakenduse üldist jõudlust.
  • Vähendatud kulud: Vähendades andmeallika koormust, võib mälusisene vahemällu salvestamine aidata vähendada rakenduse käitamise kulusid.

Nest.js-i rakenduste optimeerimine mälusisese vahemälu abil

Mälusisene vahemällu salvestamine on väga tõhus viis rakenduse üldise jõudluse parandamiseks. Olete näinud, kuidas Nest.js-is mälusisest vahemälu juurutada ning kuidas see mastaapsust ja kasutuskogemust parandab. Samuti võib see parandada reageerimisaega ja vähendada teie rakenduse käitamise kulusid.

Proovige vahemällu salvestamise kontseptsiooni järgmise Nest.js API või rakenduse loomisel praktiliselt kasutada.