האם אחזור נתונים איטי וחוזר על עצמו גורם לאפליקציה שלך להפחית ביצועים? נסה לשמור במטמון כדי לפתור את הבעיה.
בניית יישומי אינטרנט מהירים ואמינים חשובה יותר מאי פעם בנוף הדיגיטלי של היום. למשתמשים יש ציפיות גבוהות בכל הנוגע לביצועי האתר. זמני טעינה איטיים או זמן השבתה עלולים להוביל לתסכול לקוחות ולנזק למוניטין.
אחת הדרכים להשיג יישומי אינטרנט מהירים ואמינים היא באמצעות שימוש במטמון. ישנם סוגים שונים של מטמונים שאתה יכול ליישם ביישום שלך, כולל מטמון בזיכרון, מטמון דפדפן, מטמון מסד נתונים ו-CDN מטמון.
מהו מטמון, וכיצד שונה אחסון במטמון בזיכרון? כיצד תוכל להגביר את הביצועים של אפליקציית Nest.js שלך באמצעות אחסון במטמון בזיכרון?
מה זה מטמון?
מטמון הוא תהליך של אחסון נתונים שנגישים אליהם לעתים קרובות במיקום זמני כדי לשפר את הביצועים של אפליקציה או מערכת. ניתן לאחזר את הנתונים המאוחסנים במהירות ולהגיש למשתמש מבלי צורך לאחזר אותם שוב מהמקור המקורי.
אפליקציות משתמשות במטמון כדי לספק תוכן בצורה מהירה ויעילה יותר, מה שמוביל לחוויית משתמש טובה יותר ולעומס מופחת על המערכות הבסיסיות. הסוגים הנפוצים ביותר של שמירה במטמון כוללים אחסון במטמון בזיכרון,
מטמון CDN, שמירה במטמון של דפדפן ושמירה במטמון של מסד נתונים.מה זה מטמון בזיכרון?
מטמון בזיכרון הוא סוג של מטמון שבו אפליקציה מאחסנת באופן זמני בזיכרון השרת נתונים שנגישים אליהם לעתים קרובות. במקום לבצע שיחות בסיס יקרות בכל פעם שהאפליקציה מעבדת בקשה לגישה לנתונים, היא יכולה להביא את הנתונים האלה מהזיכרון.
שמירה במטמון בזיכרון פירושה שהאפליקציה ניגשת לנתונים מהר יותר, והתוצאה היא שיפור בביצועים.
כיצד ליישם מטמון בתוך הזיכרון ביישום Nest.js
ל-Nest.js יש תמיכה מובנית לאחסון במטמון באמצעות מנהלי התקנים כמו Redis, Memcached ורבים נוספים. עם זאת, למען הבנה קלה, מאמר זה משתמש במודול מטמון הזיכרון המובנה שמספק Nest.js.
סעיף זה מניח שכבר יש לך יישום Nest.js שנוצר עם הפקודה Nest CLI: קן חדש [שם אפליקציה]. כדי ליישם את המטמון בזיכרון בנקודת קצה, אתה צריך כבר להחזיק את קובצי המודול, השירות והבקר, או ליצור אותם באמצעות קֵןלִיצוֹר פקודה. אתה יכול לברר עוד על קן ליצור בתוך ה תיעוד Nest CLI.
הצעד הראשון ליישום מטמון בזיכרון הוא לייבא את CacheModule מ @nestjs/common לתוך המודול של נקודת הקצה שלך כפי שניתן לראות להלן:
// example.module.ts
יְבוּא { מודול, CacheModule } מ'@nestjs/common';@מודול({
ייבוא: [CacheModule.register()],
})
יְצוּאמעמד ModelModule {}
לאחר מכן, עליך לייבא CacheService ולהחדיר אותו לשירות Nest.js שמתקשר עם א מסד נתונים כמו MongoDB. אתה יכול לראות כיצד דוגמת הקוד הבאה עושה זאת:
// example.service.ts
יְבוּא { הזרקה, CacheService } מ'@nestjs/common';@ניתן להזרקה()
יְצוּאמעמד ExempelService {
בַּנַאִי(פְּרָטִי cacheService לקריאה בלבד: CacheService) {}אסינכרון getData(): הַבטָחָה<כל> {
const cacheKey = 'הנתונים שלי';
לתת נתונים = לְהַמתִיןזֶה.cacheService.get (cacheKey);אם (!נתונים) {
// אחזר נתונים ממסד נתונים או API
נתונים = לְהַמתִיןזֶה.fetchData();// נתוני מטמון לשימוש עתידי
לְהַמתִיןזֶה.cacheService.set (cacheKey, data, { ttl: 60 });
}לַחֲזוֹר נתונים;
}
פְּרָטִיאסינכרון fetchData(): הַבטָחָה<כל> {
// אחזר נתונים ממסד הנתונים
}
}
בקוד לדוגמה למעלה, ה- שירות לדוגמה שימושים CacheService בתור תלות. ה getData השיטה בודקת אם הנתונים זמינים במטמון באמצעות מפתח (cacheKey), אם הנתונים אינם נמצאים במטמון, הוא ממשיך להביא אותם ממסד הנתונים ושומר אותם לשימוש מאוחר יותר.
ה CacheService יש מַעֲרֶכֶת שיטה שמקבלת אובייקט כארגומנט. במקרה זה, אתה יכול לראות איך הערך { ttl: 60 } מגדיר את זמן החיים ל-60 שניות. זה מרמז שהשירות יסיר אוטומטית את הנתונים המאוחסנים במטמון לאחר דקה אחת.
כמה יתרונות חשובים של אחסון במטמון בזיכרון כוללים את הדברים הבאים:
- מדרגיות משופרת: אחסון במטמון בזיכרון יכול לעזור לשפר את המדרגיות של יישומים על ידי הפחתת העומס על מקור הנתונים הבסיסי.
- זמן תגובה מהיר יותר: שמירת נתונים שנגישה אליהם תכופות בזיכרון מפחיתה את הזמן שלוקח לאחזור הנתונים, וכתוצאה מכך זמני תגובה מהירים יותר.
- חווית משתמש טובה יותר: זמני תגובה מהירים יותר ומדרגיות משופרת יכולים לעזור לספק חווית משתמש טובה יותר על ידי צמצום זמן ההמתנה ושיפור הביצועים הכוללים של האפליקציה.
- עלויות מופחתות: על ידי הפחתת העומס על מקור הנתונים, אחסון במטמון בזיכרון יכול לעזור להפחית את העלות של הפעלת האפליקציה.
אופטימיזציה של יישומי Nest.js עם שמירת מטמון בתוך הזיכרון
אחסון במטמון בזיכרון הוא דרך יעילה מאוד לשיפור ביצועי היישום הכוללים. ראית כיצד ליישם מטמון בזיכרון ב-Nest.js וכיצד זה משפר את המדרגיות ואת חווית המשתמש. זה גם יכול לשפר את זמן התגובה ולהפחית את העלויות של הפעלת האפליקציה שלך.
נסה ליישם את הרעיון של שמירה במטמון בעת בניית ה-API או היישום הבא של Nest.js.