
- بواسطة x32x01 ||
لما بنتكلم عن البيانات (Data) في أي تطبيق، أول حاجة نفكر فيها هي قاعدة البيانات (Database).
عادةً البيانات بتتخزن على Hard Disk عن طريق Database Engine، ونرجع لها بالكود عن طريق استعلامات (Queries).
ده كويس لو البيانات بسيطة وعدد المستخدمين قليل.
لكن لما الطلبات تبقى معقدة أو الضغط عالي، زي عمليات الـ Join في SQL، السرعة تقل جدًا. هنا بييجي دور الـ Caching.
الـ Caching ببساطة هو مكان مؤقت بنخزن فيه البيانات اللي بتستخدم كتير. بدل ما نروح للـ Database كل مرة، نجيب البيانات من الكاش الموجود في الذاكرة (Memory)، وده يوفر وقت ومجهود كبير.
ليه الـ Caching مهم؟
2. تقليل الحمل على الـ Database
الكاش بيقلل عدد الطلبات اللي بتروح للـ Database، وده بيخلي السيستم يقدر يشيل عدد مستخدمين أكتر.
3. التعامل مع الضغط العالي (High Traffic)
زي إعلان نتائج الثانوية العامة أو الكليات، الكاش يمنع السيستم من الانهيار وبيسرّع استجابة الموقع.
أمثلة استخدام الكاش
2. حماية السيستم باستخدام Rate Limiter
تقدر تسجل المستخدم في الكاش وعدد الطلبات اللي عملها خلال فترة معينة.
أنواع الـ Caching
لو ما استخدمتش الكاش قبل كده، معناه إنك بتضيع فرصة كبيرة لتحسين أداء التطبيق بتاعك!
لو تعاملت مع الـ Caching قبل كده، شاركنا في التعليقات إيه الأدوات (Tools) اللي استخدمتها؟
عادةً البيانات بتتخزن على Hard Disk عن طريق Database Engine، ونرجع لها بالكود عن طريق استعلامات (Queries).
ده كويس لو البيانات بسيطة وعدد المستخدمين قليل.
لكن لما الطلبات تبقى معقدة أو الضغط عالي، زي عمليات الـ Join في SQL، السرعة تقل جدًا. هنا بييجي دور الـ Caching.
الـ Caching ببساطة هو مكان مؤقت بنخزن فيه البيانات اللي بتستخدم كتير. بدل ما نروح للـ Database كل مرة، نجيب البيانات من الكاش الموجود في الذاكرة (Memory)، وده يوفر وقت ومجهود كبير.
ليه الـ Caching مهم؟
1. سرعة الاستجابة (Response Time)
لما البيانات تكون في الكاش بدل الـ Database، الاستجابة أسرع بكتير.- استعلام من الـ Database ممكن ياخد 1-3 ثواني
- نفس الاستعلام من الكاش ممكن ياخد أقل من 50 ملي ثانية
2. تقليل الحمل على الـ Database
الكاش بيقلل عدد الطلبات اللي بتروح للـ Database، وده بيخلي السيستم يقدر يشيل عدد مستخدمين أكتر.3. التعامل مع الضغط العالي (High Traffic)
زي إعلان نتائج الثانوية العامة أو الكليات، الكاش يمنع السيستم من الانهيار وبيسرّع استجابة الموقع.أمثلة استخدام الكاش
1. تسريع الـ Queries
لو عندك بيانات مش بتتغير كتير زي نتائج الطلاب، ممكن تخزنها في الكاش بدل استدعائها من الـ Database كل مرة.2. حماية السيستم باستخدام Rate Limiter
تقدر تسجل المستخدم في الكاش وعدد الطلبات اللي عملها خلال فترة معينة.- لو المستخدم تجاوز الحد المسموح، زي 5 طلبات في الدقيقة، ترجع له رسالة خطأ 429 Too Many Requests
- ده بيحمي السيستم من هجمات زي Denial of Service
أنواع الـ Caching
1. In-Memory Caching
- البيانات بتتخزن جوه ذاكرة السيرفر اللي الابلكيشن شغال عليه.
- كل سيرفر ليه كاش خاص به، ومش بيتشارك مع سيرفرات تانية.
- مناسب للأنظمة اللي شغالة على سيرفر واحد.
2. Distributed Caching
- الكاش بيتخزن في مكان مركزي زي Redis أو SQL Server.
- كل السيرفرات تقدر تستخدم نفس البيانات.
- مفيد لما عندك أكثر من سيرفر وفي Load Balancer، وبيضمن إن كل السيرفرات تشوف نفس البيانات.
لو ما استخدمتش الكاش قبل كده، معناه إنك بتضيع فرصة كبيرة لتحسين أداء التطبيق بتاعك!

لو تعاملت مع الـ Caching قبل كده، شاركنا في التعليقات إيه الأدوات (Tools) اللي استخدمتها؟
التعديل الأخير: