PracticU

שימוש ב-Cache עבור טבלאות של MySQL

בלי כתוביותעם כתוביות
PracticU › קורס NodeJS › שימוש ב-Cache עבור טבלאות של MySQL
מילון מושגים:
מטמון - אחסון זמני ומהיר של נתונים שנדרשים שוב, כדי להאיץ גישה ולהפחית עומס מהמקור המקורי.
טבלה - מבנה במסד נתונים שמאחסן נתונים בשורות ועמודות. כל שורה היא רשומה וכל עמודה היא שדה.
MySQL - מערכת ניהול מסדי נתונים יחסיים בקוד פתוח, נפוצה מאוד באתרים וביישומי אינטרנט.
REST - סגנון לבניית ממשקי API מעל HTTP, המבוסס על משאבים ועל שיטות סטנדרטיות כמו GET ו-POST.
Promise - אובייקט ב-JavaScript שמייצג תוצאה עתידית של פעולה אסינכרונית, שתושלם בהצלחה או תיכשל.
Postman - כלי לבדיקת API: שליחת בקשות HTTP לשרת ובחינת התגובות, נפוץ בפיתוח ובבדיקות.
דפדפן - תוכנה שמציגה דפי אינטרנט ומריצה את הקוד שבהם, ומאפשרת לגלוש בין אתרים, למשל Chrome או Firefox.
בקשה - פנייה שלקוח שולח לשרת כדי לקבל מידע או לבצע פעולה. השרת מחזיר עליה תגובה.

שימוש ב-Cache עבור טבלאות של MySQL
הרצאה זו מחברת את הרעיון של cache לשירות RESTful קיים שמחזיר מוצרים, ומראה איך להיפטר מהמתנה חוזרת לכל לקוח. כדי לראות הבדל, מדמים תחילה שליפה איטית.
השלבים העיקריים
1. הדמיית עיכוב: בתיקייה חדשה יוצרים קובץ delayAsync. הפונקציה מקבלת מילי-שניות ומחזירה Promise שקורא ל-resolve מתוך setTimeout כשהזמן עבר. מייבאים אותה ומבצעים await של 3 שניות לפני החזרת המוצרים, כאילו השליפה ארוכה.
2. מצב לפני cache: ב-Postman וגם בדפדפנים הבקשה נתקעת 3 שניות בכל פעם, בלי קשר לדפדפן.
3. התקנה: מתקינים memory-cache ומייבאים אותו כ-cache.
4. בדיקה לפני שליפה: אם cache.get('products') לא קיים, מבצעים את כל הסיפור הכבד: השהיה ושליפת המוצרים מהמסד. לאחר מכן מכניסים אותם עם cache.put, ומשך שמירה של שעה (אלף כפול 60 כפול 60).
5. החזרה מה-cache: בכל מקרה מחזירים את cache.get ולא את התוצאה ישירות, כך שבפעם הראשונה הערך נשלף ממסד הנתונים ונשמר, ובפעמים הבאות הוא כבר שם.
6. בדיקה: הבקשה הראשונה לוקחת 3 שניות, והבאות מהירות. רענון בדפדפנים אחרים מהיר גם הוא. אחרי הפסקה והפעלה מחדש של השרת ה-cache מתרוקן, ושוב הבקשה הראשונה לוקחת 3 שניות.
עכשיו כל הלקוחות מקבלים את המוצרים מה-cache אחרי הגישה הראשונה, ואין גישה למסד הנתונים אלא פעם בשעה.

פרקי ההרצאה: שימוש ב-Cache עבור טבלאות של MySQL

  1. 00:00

    Restful Service להבאת מוצרים

  2. 00:44

    פונקציית delayAsync עם setTimeout

  3. 01:56

    השהיה של שלוש שניות לפני ההחזרה

  4. 02:57

    בדיקת ההשהיה ב-Postman ובדפדפנים

  5. 04:01

    התקנת memory-cache

תמלול ההרצאה: שימוש ב-Cache עבור טבלאות של MySQL

הטקסט המלא של הדקות הראשונות בהרצאה «שימוש ב-Cache עבור טבלאות של MySQL» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:04

    טוב, אז בואו נראה איך אנחנו יכולים לשלב את כל הקונספט הזה ב-Cash עם איזושהי מיני תוכנה שיש לנו פה של ה-Restful Service שבנינו בעבר.

  2. 00:16

    יש לנו פה Restful Service שכל מה שהוא עושה הוא יודע להביא לי מוצרים. זה הדבר היחידי שהוא יודע לעשות. ומה שאני רוצה לעשות זה קודם כל איזושהי הדמיה כאילו שההבאה של המוצרים לוקחת זמן, כי היא לא באמת לוקחת זמן כרגע, כי אנחנו בדאטאבייס מקומי וגם אין פה הרבה מידע, אבל בואו נעשה הדמיה כזאת.

  3. 00:39

    בואו נפתח פה איזושהי תיקייה טסטר כזאת, ובתוך התיקייה נפתח קובץ delay async, java סקריפטי כזה, ובתוכו אנחנו רוצים לבנות איזושהי פונקציה שעושה לנו delay function, delay delay async, תקבל מילי סקנדס, ועולה ותחזיר לנו promise שיש לו כמובן resolve reject שכל מה שהוא יעשה set timeout

  4. 01:24

    ויש לנו פה איזושהי פונקציה והוא יריץ את זה למשך המילי סקנדס וברגע שהוא מסיים resolve רק פשוט תקרא לresolve זה הכל נחשוף החוצה את delay async וכעת אנחנו יכולים לבצע הדמיה כאילו שכל הסיפור הזה לוקח לנו הרבה זמן.

  5. 02:01

    זאת אומרת שאנחנו יכולים לבוא בחזרה ולקרוא ל-wait האמת שאני צריך פה למעלה את delay async בואו נעלה פגיעה נלך לtester ו-delay async ואז יש לנו פונקציה delay שבואו ניתן לה שלוש שניות.

  6. 02:35

    ומה שהיא תעשה היא פשוט תמתין כאן לפני שהיא תחזיר את המוצרים. זה בעצם הדמיה כאילו, וואלה, לקח לנו מינימום שלוש שניות להביא את המוצרים מהשרת.

  7. 02:47

    אז בואו נריץ את התוכנית Node App, בואו ניגש ל-Postman, נרשום כאן שאנחנו רוצים HTTP/Localhost 3000 API Product, האמת הנה יש לנו את זה פה, send ואנחנו רואים שאנחנו תקועים שלוש שניות ואז אנחנו מקבלים את המענה.

  8. 03:18

    שוב פעם, send, תקועים שלוש שניות. גם אם אנחנו ניקח את הדבר הזה לכל דפדפן שהוא, בואו נפתח רגע את חרום, נשים את זה פה, אנחנו רואים שחרום תקוע שלוש שניות ואז מביא לנו את המוצרים.

  9. 03:34

    בואו נלך לאינטרנט אקספלורר ונראה ש... ולא משנה איזה דפדפן אנחנו גולשים, אנחנו תקועים את השלוש שניות ורק אז מקבלים את המוצרים. אינטרנט אקספלורר מציגה לנו את המידע בצורה כזאת מאיזושהי סיבה, בואו נעשה אופן, תודה, אף אחד עד היום לא יודע למה, אבל פיין.

  10. 03:56

    ואנחנו רוצים לייעל את זה על ידי קאשינג. הדבר הראשון שאנחנו רוצים זה לבצע את ההתקנה. אז יש לנו npmi, יש לנו את memory cache, יופי הדבר הבא שאנחנו רוצים זה פה למעלה להגדיר קונסט קאש אוי אני רואה שהוא לא הצליח להתקין נפי אמ איי רשמתי

  11. 04:31

    מומורי אוי ואבוי ממורי קאש גו אמור להיות בסדר עכשיו

לקורס המלא: קורס NodeJS אונליין בעברית

ההרצאה הקודמת: שימוש ב-Cache ב-NodeJS

ההרצאה הבאה: הסבר על Socket.io

הרצאות קשורות מקורסים אחרים

  • שימוש ב-Cache - חלק 1
  • Cache object
  • מבנה טבלאות
  • הרצאה על Azure MySQL

קורסים נוספים במסלול

  • קורס יסודות HTML - בניית אתר אינטרנט פשוט
  • קורס CSS 3 - בדגש על Flex & Grid
  • קורס Javascript כולל JQuery
  • קורס ג'אווה סקריפט מעשי - JavaScript
  • קורס TypeScript
  • קורס ריאקט - React