אסטרטגיות Cache בשימוש ב ElastiCache

ElasticCache הוא שירות מנוהל של MemCached או Redis (ניתן לבחור איזה מהמנועים אנו מעוניינים להריץ) ומיועד לשפר את ביצועי מסד הנתונים שלנו על ידי שמירת שאילתות בCache.


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

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

Write Through

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

TTL – Time To Live
מאפשר לנו להקטין את החסרונות הקיימים באסטרטגיות Write Through ו Lazy Loading
TTL זה הזמן שאנו מעוניינים שהמפתח Cache שלנו יהיה קיים – או יותר נכון, מתי אנו מעוניינים שהוא יימחק.
חשוב לזכור שTTL לכשעצמו לא מבטיח לנו שהמידע שיש לנו בקאש יהיה העדכני ביותר, הוא רק מבטיח לנו שהקאש שלנו לא יהיה במלא במידע שאנו לא צריכים אותו.
TTL בשיתוף עם Lazy Loading בעצם יאפשר לנו לאכול את העוגה ולהשאיר אותה שלמה – אנו גם כותבים לקאש רק מידע שאנו צריכים וגם שומרים אותו עדכני על ידי שימוש בTTL – החיסרון הוא שבפעם הראשונה שאנו נצטרך את הדאטא – אנו בעצם לא נהנים מהייתרונות של הCache.