تخزين البيانات مؤقتًا في PHP: تسريع موقعك بسهولة

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

تخزين البيانات مؤقتًا في PHP: كيف تجعل موقعك يطير

\n\n

هل سبق لك أن انتظرت ثلاث ثوانٍ كاملة لتحميل صفحة وشعرت بالغضب يتصاعد بداخلك؟ زوار موقعك يشعرون بنفس الشعور. في عالم تُحسب فيه كل ملي ثانية، الموقع البطيء يعني عملاء خاسرين وتحويلات ميتة.

\n\n

التخزين المؤقت للبيانات هو القوة الخارقة التي تحول تطبيق PHP الخاص بك من سلحفاة إلى فهد. بدلاً من إعادة حساب نفس الشيء في كل مرة، تقوم بحفظ النتيجة وإعادتها فورًا. يبدو كالسحر؟ لا، إنها ممارسة هندسية سنقوم بتفكيكها بالكامل اليوم.

\n\n

في هذه المقالة، لن نلقي محاضرات مملة. سنشمر عن سواعدنا ونرى كيف يعمل التخزين المؤقت في PHP فعليًا: من كاش الملفات البسيط إلى الحلول الصناعية باستخدام Redis و Memcached. هيا بنا!

\n\n

لماذا التخزين المؤقت ليس خيارًا بل ضرورة

\n\n

تخيل أنه في كل مرة يدخل فيها مستخدم إلى الصفحة الرئيسية لبوابة أخبارية، يقوم PHP بإجراء استعلام لقاعدة البيانات، وجمع آخر 50 خبرًا، ومعالجة كل خبر، وإنشاء HTML، ثم إرسال النتيجة. قاعدة البيانات تعمل كالعبد في السفن القديمة، الخادم يسخن، والمستخدم ينتظر.

\n\n

والآن تخيل البديل: كاش PHP يحفظ HTML الجاهز لمدة ساعة. الزوار الـ 10,000 التاليون يحصلون على الصفحة في 5 ملي ثانية، قاعدة البيانات تستريح، وأنت البطل. الفرق واضح.

\n\n

يحل التخزين المؤقت ثلاث مشاكل رئيسية:

\n
    \n
  • يقلل الحمل على قاعدة البيانات — استعلامات أقل = زمن استجابة أقل.
  • \n
  • يسرع استجابة الخادم — المستخدمون سعداء، ترتيب SEO يرتفع.
  • \n
  • يوفر الموارد — يمكنك خدمة حركة مرور أكبر على نفس الأجهزة.
  • \n
\n\n

لكن الكاش ليس حبة سحرية. إذا قمت بإعداد التحديث (مسح البيانات القديمة) بشكل خاطئ، سيرى المستخدمون معلومات قديمة، وهذا أسوأ من موقع بطيء. لذلك دعنا نتعلم فورًا كيفية القيام بذلك بشكل صحيح.

\n\n

الأنواع الرئيسية للتخزين المؤقت في PHP

\n\n

هناك العديد من الاستراتيجيات، والاختيار يعتمد على المهمة. دعنا نستعرض ثلاثة مستويات رئيسية.

\n\n

1. التخزين المؤقت على مستوى الكود (opcode cache)

\n

PHP هي لغة مفسرة. في كل مرة تقوم فيها بتشغيل سكريبت، يتم تجميعه إلى كود بايت. OPcache (المدمج في PHP) يحفظ هذا الكود البايت في الذاكرة، لتجنب إعادة تجميع السكريبت من جديد. هذا يعطي زيادة في السرعة تصل إلى 30% دون كتابة سطر واحد من الكود. فقط قم بتفعيله في php.ini:

\n
opcache.enable=1\nopcache.memory_consumption=128\nopcache.max_accelerated_files=10000
\n\n

هذا هو الأساس الذي يجب أن يبدأ به كل مطور PHP. إذا لم يكن OPcache مفعلًا لديك — فأنت تخسر أداءً مجانًا.

\n\n

2. تخزين البيانات مؤقتًا (Data caching)

\n

هذا ما نعنيه عادةً بكلمة "كاش". نحفظ نتيجة عملية حسابية ثقيلة أو استعلام لقاعدة البيانات ونعيدها من مخزن سريع. الطرق:

\n
    \n
  • كاش الملفات — الأبسط، نحفظ البيانات في ملفات على القرص.
  • \n
  • كاش الذاكرة — Redis، Memcached، APCu.
  • \n
  • كاش على مستوى قاعدة البيانات — query cache في MySQL (قديم لكن المفهوم لا يزال قائمًا).
  • \n
\n\n

3. تخزين HTML مؤقتًا (Page caching)

\n

نحفظ صفحة HTML كاملة جاهزة. مثالي للمحتوى الثابت أو الصفحات التي نادرًا ما تتغير. مثل صفحة الهبوط أو الصفحة الرئيسية للمدونة.

\n\n

تنفيذ كاش بسيط في PHP بنفسك

\n\n

قبل توصيل Redis، دعنا نكتب كاش ملفات بسيط. ليس الأسرع، لكنه حل ممتاز للأغراض التعليمية والأحمال المنخفضة.

\n\n
class SimpleCache {\n    private $cacheDir;\n\n    public function __construct($cacheDir = 'cache/') {\n        $this->cacheDir = $cacheDir;\n        if (!is_dir($this->cacheDir)) {\n            mkdir($this->cacheDir, 07                

المدونات

توصيات الكتب