Je li sporo, ponavljajuće dohvaćanje podataka uzrok neučinkovitosti vaše aplikacije? Pokušajte predmemorirati da riješite problem.

Izrada brzih i pouzdanih web aplikacija važnija je nego ikad u današnjem digitalnom okruženju. Korisnici imaju velika očekivanja kada je u pitanju izvedba web stranice. Sporo vrijeme učitavanja ili zastoj može dovesti do frustracije korisnika i štete ugledu.

Jedan od načina postizanja brzih i pouzdanih web aplikacija je korištenje predmemoriranja. Postoje različite vrste predmemorija koje možete implementirati u svoju aplikaciju, uključujući predmemoriju u memoriji, predmemoriju preglednika, predmemoriju baze podataka i CDN predmemoriju.

Što je predmemoriranje i po čemu se razlikuje predmemoriranje u memoriji? Kako možete povećati izvedbu svoje Nest.js aplikacije s predmemorijom u memoriji?

Što je predmemoriranje?

Predmemoriranje je postupak pohranjivanja podataka kojima se često pristupa na privremeno mjesto radi poboljšanja performansi aplikacije ili sustava. Predmemorirani podaci mogu se brzo dohvatiti i poslužiti korisniku bez ponovnog dohvaćanja iz izvornog izvora.

instagram viewer

Aplikacije koriste predmemoriju za bržu i učinkovitiju isporuku sadržaja, što dovodi do boljeg korisničkog iskustva i smanjenog opterećenja temeljnih sustava. Najčešći tipovi predmemoriranja uključuju predmemoriranje u memoriji, CDN predmemoriranje, predmemoriranje preglednika i predmemoriranje baze podataka.

Što je predmemoriranje u memoriji?

Predmemoriranje u memoriji vrsta je predmemoriranja u kojem aplikacija privremeno sprema podatke kojima se često pristupa u memoriju poslužitelja. Umjesto upućivanja skupih poziva bazi podataka svaki put kada aplikacija obradi zahtjev za pristup podacima, može dohvatiti te podatke iz memorije.

Spremanje podataka u memoriju znači da aplikacija brže pristupa podacima, a to rezultira poboljšanim performansama.

Kako implementirati predmemoriranje u memoriji u Nest.js aplikaciji

Nest.js ima ugrađenu podršku za predmemoriju pomoću upravljačkih programa kao što su Redis, Memcached i mnogi drugi. Međutim, radi lakšeg razumijevanja, ovaj članak koristi ugrađeni modul predmemorije memorije koji pruža Nest.js.

Ovaj odjeljak pretpostavlja da već imate Nest.js aplikaciju stvorenu s Nest CLI naredbom: nest new [naziv aplikacije]. Da biste implementirali predmemoriju u memoriji u krajnjoj točki, trebali biste već imati datoteke modula, usluge i kontrolera ili ih generirati pomoću gnijezdogenerirati naredba. Možete saznati više o gnijezdo generirati u Nest CLI dokumentacija.

Prvi korak za implementaciju predmemorije u memoriji je uvoz CacheModule iz @nestjs/zajedničko u modul vaše krajnje točke kao što je prikazano u nastavku:

// primjer.modul.ts
uvoz { Modul, CacheModule } iz'@nestjs/common';

@Modul({
uvozi: [CacheModule.register()],
})

izvozrazreda PrimjerModula {}

Zatim morate uvesti CacheService i ubacite ga u uslugu Nest.js koja komunicira s a baza podataka poput MongoDB-a. Možete vidjeti kako to radi sljedeći primjer koda:

// primjer.usluga.ts
uvoz {Injectable, CacheService} iz'@nestjs/common';

@Injekcioni()
izvozrazreda Primjer usluge {
konstruktor(privatna cacheService samo za čitanje: CacheService) {}

asinkroni getData(): Obećanje<bilo koji> {
konst cacheKey = 'moji_podaci';
neka podaci = čekatiovaj.cacheService.get (cacheKey);

ako (!podaci) {
// dohvaćanje podataka iz baze podataka ili API-ja
podaci = čekatiovaj.fetchData();

// predmemorirati podatke za buduću upotrebu
čekatiovaj.cacheService.set (cacheKey, podaci, { ttl: 60 });
}

povratak podaci;
}

privatnaasinkroni dohvatiPodatke(): Obećanje<bilo koji> {
// dohvaćanje podataka iz baze podataka
}
}

U gornjem primjeru koda, Primjer usluge koristi CacheService kao ovisnost. The getData metoda provjerava jesu li podaci dostupni u predmemoriji pomoću ključa (cacheKey), ako podaci nisu u predmemoriji, dohvaća ih iz baze podataka i sprema ih u predmemoriju za kasniju upotrebu.

The CacheService ima postaviti metoda koja uzima objekt kao argument. U ovom slučaju možete vidjeti kako vrijednost { ttl: 60 } postavlja vrijeme života na 60 sekundi. To znači da će usluga automatski ukloniti predmemorirane podatke nakon jedne minute.

Neke važne prednosti predmemoriranja u memoriji uključuju sljedeće:

  • Poboljšana skalabilnost: Predmemorija u memoriji može poboljšati skalabilnost aplikacija smanjenjem opterećenja temeljnog izvora podataka.
  • Brže vrijeme odgovora: Predmemoriranje podataka kojima se često pristupa u memoriju smanjuje vrijeme potrebno za dohvaćanje podataka, što rezultira bržim vremenom odgovora.
  • Bolje korisničko iskustvo: Brže vrijeme odgovora i poboljšana skalabilnost mogu pomoći u pružanju boljeg korisničkog iskustva smanjenjem vremena čekanja i poboljšanjem ukupne izvedbe aplikacije.
  • Smanjeni troškovi: Smanjenjem opterećenja izvora podataka, predmemoriranje u memoriji može pomoći u smanjenju troškova izvođenja aplikacije.

Optimiziranje Nest.js aplikacija s predmemorijom u memoriji

Predmemorija u memoriji vrlo je učinkovit način poboljšanja ukupne izvedbe aplikacije. Vidjeli ste kako implementirati predmemoriju u memoriji u Nest.js i kako ona poboljšava skalabilnost i korisničko iskustvo. Također može poboljšati vrijeme odziva i smanjiti troškove pokretanja vaše aplikacije.

Pokušajte staviti koncept predmemoriranja u praktičnu upotrebu kada gradite svoj sljedeći Nest.js API ili aplikaciju.