
الـ caching يعتبر من التقنيات الأساسية اللي بتحسن أداء التطبيقات والأنظمة من خلال تخزين البيانات اللي بنحتاجها كتير في مكان قريب زي الـ Memory للوصول السريع ليها بدل ما نعمل عمليات مكلفة على الـ database أو الـ API.
فبالتالي هو بيساعد جدًا في التحسين من الـ Performance ولكن مش كل أنواع الـ Caching مناسبة لكل موقف ، وده لإنه بيعتمد بنسبة كبيرة على الـ Data Access Patterns
، وكل تكنيك ليه الـ Trade-offs اللي لازم نكون مُلمين بيها عشان كدة مهم نفهم الأنواع المختلفة والسيناريوهات الأنسب لكل نوع.
Cache Hit Vs Cache Miss
قبل ما نتكلم عن الـ Caching Strategies فلازم نكون عارفين إن الـ Application لما بيلاقي الـ Data موجودة في الـ Cache فده معناه Cache Hit ولو ملقهاش فبيكون اسمه Cache Miss.
Cache Reading Strategies
الـCaching Strategies أثناء الـReading:
1. Cache Aside
الـ Cache Aside لو الـ Application حصله Cache Miss، فبيروح يجيب الـ Data من الـ Database وبعدين يعمل Update للـ Cache بالـ Data اللي عملها Fetch.
2. Read Through
الـ Read Through لو الـ Application حصله Cache Miss، الـ Cache ذات نفسه بيروح يجيب الـ Data من الـ Database ويعمل لنفسه Update بحيث الـ Data تبقى عنده.
3. Refresh-Ahead Cache
ده نوع متقدم من الـ Caching بيحاول يسبق الأحداث. يعني النظام بيحاول يجيب البيانات اللي احتمال التطبيق يحتاجها قبل ما يطلبها، عشان تبقى جاهزة في الـ Cache لما يطلبها المستخدم.
Cache Writing Strategies
الـCaching Strategies أثناء الـWriting:
1. Write Around
الـ Write Around الـ Application بيكتب الـ Data في الـ Database الأول، ولو جه يعملها Fetch بيروح للـ Cache الأول، ولو حصل Cache Miss بيروح يقرأها من الـ Database ويعمل Update للـ Cache.
2. Write Through
الـ Write Through الـ Application بيكتب الـ Data في الـ Cache وبعدين بيكتبها على طول في الـDatabase.
3. Write Back
الـ Write Back الـ Application بيكتب الـ Data في الـ Caching وتفضل الـData تتكتب في الـ Caching وكل فترة من وقت للتاني الـ Cache ياخد الـ Data دي ويحطها في الـ Database مرة واحدة.
كل طريقة من دول ليها الـ Trade-offs بتاعتها وممكن نعمل مزيج بينهم ونستفاد من أكتر من طريقة.