Distributed Cache Or In-Memory Cache
שלום לכולם,
אשמח לשמוע את דעתכם על שימוש שאני חושב לבצע ב Cache.
אני כותב Service מסויים שהוא stateless, זתומרת שאני יכול להרים מספרים Instances שלו וכל אחד קורא מ DB ובמבצע כל מיני פעולות.
כל Instance פורק מ queue מסויים הודעות.
הService הזה עושה גם שימוש ב Redis בתור Distributed Cache.
אחד המדברים שהסביס הזה עושה הוא מאזין לאיזה תור ורושם מידע ל DB ושם אותו ב cache נניח לשעה.
כל פניה למידע נבדקת קודם ב cache ואם הוא ריק אז פונים ל DB (ושמורים ל cache).
עכשיו יש לי מידע שכמעט אף פעם לא משתנה. נניח location של עובד במשרד. זה סוג מידע שיכול להשתנות פעם בחודש (לכל המשרד).
זהו סוג מידע שאני קורא המון המון המון פעמים. כל פניה כזאת ל REDIS זה בעצם פעולת IO שאם המידע הזה היה שמור לי ב memory בתוך השרת זה היה הכי יעיל מבחינתי.היה חוסך לי פניות.
אז חשבתי להתשמש ב Redis pub/sub. כל ה Instances מאזינים ל channel מסויים. אחד מהם מקבל שינוי מידע דרך Queue, במקום לשמור ל Redis, המידע נשמר ל DB ואז נשלח הודעה דרך pub/sub וכל Instance שלמעלה ומאזין, פונה ל DB ושומר In-Memory.
אני מזכיר זהו מידע שיכול להשתנות בתדירות מאד נמוכה כמו החלפת שעון.
נגיד גם שכל Instance חדש שעולה שואב את המידע מה DB בזמן העלייה.
מה דעתכם? מה החסרונות? האם אני חושב על משהו לא טוב? האם הדרך לא טובה?
תודה רבה.
שלום לכולם,
אשמח לשמוע את דעתכם על שימוש שאני חושב לבצע ב Cache.
אני כותב Service מסויים שהוא stateless, זתומרת שאני יכול להרים מספרים Instances שלו וכל אחד קורא מ DB ובמבצע כל מיני פעולות.
כל Instance פורק מ queue מסויים הודעות.
הService הזה עושה גם שימוש ב Redis בתור Distributed Cache.
אחד המדברים שהסביס הזה עושה הוא מאזין לאיזה תור ורושם מידע ל DB ושם אותו ב cache נניח לשעה.
כל פניה למידע נבדקת קודם ב cache ואם הוא ריק אז פונים ל DB (ושמורים ל cache).
עכשיו יש לי מידע שכמעט אף פעם לא משתנה. נניח location של עובד במשרד. זה סוג מידע שיכול להשתנות פעם בחודש (לכל המשרד).
זהו סוג מידע שאני קורא המון המון המון פעמים. כל פניה כזאת ל REDIS זה בעצם פעולת IO שאם המידע הזה היה שמור לי ב memory בתוך השרת זה היה הכי יעיל מבחינתי.היה חוסך לי פניות.
אז חשבתי להתשמש ב Redis pub/sub. כל ה Instances מאזינים ל channel מסויים. אחד מהם מקבל שינוי מידע דרך Queue, במקום לשמור ל Redis, המידע נשמר ל DB ואז נשלח הודעה דרך pub/sub וכל Instance שלמעלה ומאזין, פונה ל DB ושומר In-Memory.
אני מזכיר זהו מידע שיכול להשתנות בתדירות מאד נמוכה כמו החלפת שעון.
נגיד גם שכל Instance חדש שעולה שואב את המידע מה DB בזמן העלייה.
מה דעתכם? מה החסרונות? האם אני חושב על משהו לא טוב? האם הדרך לא טובה?
תודה רבה.