ما هي ذاكرة التخزين المؤقت؟ وكيف تُسرّع البيانات المخزنة مؤقتًا العمليات؟
يستطيع المعالج الحديث استرجاع قيمة من أقرب ذاكرة تخزين مؤقتة له في أقل من نانوثانية. بينما يستغرق الوصول إلى الذاكرة الرئيسية لنفس القيمة وقتًا أطول بمئة ضعف تقريبًا. لذا، يقوم المعالج بما هو بديهي: يحتفظ بنسخة من البيانات التي قد يحتاجها بجواره مباشرةً. هذه النسخة هي ذاكرة التخزين المؤقتة، وتتكرر هذه العملية في كل طبقة من طبقات الحوسبة، بدءًا من شريحة المعالج وصولًا إلى الخادم الذي وفّر هذه الصفحة. يشرح هذا الدليل ماهية ذاكرة التخزين المؤقتة، وكيفية عملها، وأماكن وجودها، وما إذا كان من الضروري مسحها.
تعريف ذاكرة التخزين المؤقت: ما هي ذاكرة التخزين المؤقت حقًا
ذاكرة التخزين المؤقت هي مساحة تخزين مؤقتة. صغيرة الحجم، سريعة، وموجودة بالقرب من أي جهاز يحتاجها. تحتفظ بنسخ من البيانات التي يتوقع النظام الحاجة إليها مجددًا، بحيث يمكنه استرجاع النسخة عند الحاجة بدلًا من إعادة تنفيذ عمليات بطيئة أو مكلفة. افتح هذه الصفحة مرة أخرى، وسيتم تحميل جزء كبير منها من نسخة موجودة مسبقًا على جهازك، وليس من الخادم.
كلمة "مؤقت" هي الكلمة الأساسية هنا. البيانات المخزنة مؤقتًا ليست هي البيانات الأصلية أبدًا، بل هي نسخة مكررة، تُحفظ فقط لزيادة السرعة، ويمكنك حذفها متى شئت. امسحها ولن يختفي أي شيء ذي قيمة. ببساطة، يعود النظام إلى المصدر الأصلي ويعيد بناء النسخة. رصيدك البنكي ليس مخزنًا مؤقتًا، بل نسخة من صفحة الويب التي تعرض هذا الرصيد قد تكون كذلك. هذه الفجوة بين المصدر الحقيقي والنسخة المؤقتة هي السبب الرئيسي في أن التخزين المؤقت آمن للتطبيق على كل شيء. في أسوأ الأحوال، إذا كانت النسخة مفقودة أو خاطئة، يتجاهل النظام الأمر، ويجلب البيانات من المصدر، ويستمر في العمل.
كيف تعمل ذاكرة التخزين المؤقت: نجاح الوصول، وفشل الوصول، والإخراج
تعتمد كل ذاكرة تخزين مؤقتة، في أي مكان، على سؤال واحد: هل لديّ نسخة من هذا بالفعل؟ الإجابة بنعم تعني إجابة سريعة. يتم تقديم النسخة، وتجاوز المسار البطيء، وانتهى الأمر. أما الإجابة بلا فتعني القيام بالعمل البطيء مرة واحدة: جلب البيانات من المصدر، وإعادة النتيجة، والاحتفاظ بنسخة منها قبل إرسالها لضمان سرعة الطلبات اللاحقة. هذه هي الآلية برمتها. أما الباقي فهو عبارة عن إدارة لمشكلتين معقدتين، وهما: ما الذي يجب التخلص منه عند انخفاض مساحة التخزين، وكيفية تجنب إعادة نسخة قديمة.
نسبة نجاح الوصول إلى ذاكرة التخزين المؤقت مقابل نسبة فشل الوصول إليها
هل وجدته؟ هذا يعني نجاح الوصول إلى ذاكرة التخزين المؤقت. لم تجده؟ هذا يعني فشل الوصول إلى ذاكرة التخزين المؤقت، مما يُجبر المستخدم على اللجوء إلى خادم التخزين الاحتياطي الأبطأ. تُسمى نسبة الطلبات التي تنتهي بنجاح "نسبة النجاح"، وهي الرقم الوحيد الذي يُراقبه المهندسون فعليًا. تسعى شبكة توصيل المحتوى التي تُقدم ملفات ثابتة مثل الصور وملفات أنماط CSS إلى تحقيق نسبة نجاح تتراوح بين 95 و99%. عند تحقيق هذه النسبة، يحصل كل زائر تقريبًا على نسخة قريبة بينما يبقى الخادم الأصلي دون استخدام يُذكر. انخفاض نسبة النجاح يعني أن ذاكرة التخزين المؤقت تُستخدم بشكل أساسي لأغراض ثانوية.
عندما تمتلئ ذاكرة التخزين المؤقت: سياسات الإخلاء
المخزن المؤقت صغير الحجم عمدًا. التخزين السريع مكلف، لذا لا يوجد متسع لكل شيء، وبمجرد امتلاء المخزن، لا بد من التخلص من شيء ما. القاعدة التي تحدد الخاسر هي سياسة الإزالة. الوضع الافتراضي المعتاد هو الأقل استخدامًا مؤخرًا (LRU): التخلص من أي عنصر بقي دون استخدام لأطول فترة، مع الأخذ في الاعتبار أن ما تجاهلته مؤخرًا ستستمر في تجاهله. هناك أنظمة أخرى تحسب بشكل مختلف. الأقل استخدامًا بشكل متكرر (LFU) يتتبع عدد مرات الوصول إلى كل عنصر. أما نظام الوارد أولًا يُصرف أولًا (FIFO) فيتخلص ببساطة من أقدم عنصر. نفس المخاطرة، ولكن بأساليب مختلفة. كل سياسة هي في الواقع مجرد تخمين للنسخة التي ستفتقدها أقل.
الحفاظ على نسخ محدثة: سياسات مدة الصلاحية والكتابة
لا تُعتبر النسخة صالحة إلا طالما أنها مطابقة للمصدر. لذا، تُضيف معظم ذاكرات التخزين المؤقت مدة صلاحية (TTL) لكل إدخال: وهي عبارة عن عد تنازلي، وبعد انقضائه تُعتبر النسخة منتهية الصلاحية ويجب إعادة فحصها أو جلبها. على الويب، يُحدد رأس Cache-Control هذه المدة. يُمكن الرجوع إلى RFC 9111 كمرجع، حيث يسمح توجيه max-age ببقاء الاستجابة مخزنة مؤقتًا لمدة تصل إلى عام، أو 31,536,000 ثانية إذا أردت الرقم الدقيق. تُمثل عمليات الكتابة النصف الآخر من المشكلة. تحفظ الكتابة المباشرة البيانات في ذاكرة التخزين المؤقت والمصدر في الوقت نفسه، وهي طريقة آمنة ولكنها أبطأ. أما الكتابة المؤجلة فتحفظ البيانات في ذاكرة التخزين المؤقت الآن وفي المصدر لاحقًا، وهي طريقة سريعة ولكنها تُخلّف فترة وجيزة من عدم التطابق بينهما. اختر ما يُناسبك.

أنواع ذاكرة التخزين المؤقت: من وحدة المعالجة المركزية إلى شبكة توصيل المحتوى
هنا يكمن الجزء الذي تغفله معظم الشروحات. قد يبدو أن ذاكرة التخزين المؤقت للمتصفح وذاكرة التخزين المؤقت لوحدة المعالجة المركزية من المستوى الأول (L1) عالمان مختلفان، لكنهما في الواقع نفس الفكرة ولكن على مسافات مختلفة. تحتفظ كل طبقة بنسخ من البيانات التي تستغرق وقتًا طويلاً للوصول إليها بالقرب من أي عنصر يحتاجها. وإذا تتبعت هذا النمط من الداخل إلى الخارج، فستجده يتكرر على طول المسار.
التخزين المؤقت للذاكرة: مستويات ذاكرة التخزين المؤقت لوحدة المعالجة المركزية L1، L2، L3
تحدث أسرع عمليات التخزين المؤقت على المعالج نفسه. تحتوي وحدات المعالجة المركزية الحديثة على ثلاثة مستويات من ذاكرة التخزين المؤقت مبنية من ذاكرة SRAM، وهي نوع من الذاكرة أسرع بكثير من ذاكرة DRAM المستخدمة للذاكرة الرئيسية، ولكنها أغلى بكثير لكل بايت. ذاكرة L1 صغيرة جدًا وفورية تقريبًا، حيث تستجيب بضع عشرات من الكيلوبايتات لكل نواة في حوالي نانوثانية. ذاكرة L2 أكبر حجمًا وأبطأ قليلًا. ذاكرة L3 أكبر حجمًا ومشتركة بين النوى؛ يأتي معالج Intel Core i9-14900K مزودًا بـ 36 ميجابايت منها، بينما يصل حجم ذاكرة L3 في معالج AMD Ryzen 9 7950X3D إلى 128 ميجابايت. كل هذا موجود لتغطية ثغرة واحدة: يستغرق سحب البيانات من ذاكرة L1 أقل من نانوثانية، بينما تستغرق ذاكرة DDR5 الرئيسية حوالي 70 نانوثانية، أي بفارق يقارب مئة ضعف. تعمل ذاكرة التخزين المؤقت لأن البرامج تعيد استخدام البيانات نفسها والبيانات المجاورة لها، وهي عادة تُعرف باسم "موضعية المرجع".
| طبقة | الحجم النموذجي | وقت الوصول النموذجي | ما يحتويه |
|---|---|---|---|
| ذاكرة التخزين المؤقت لوحدة المعالجة المركزية من المستوى الأول | 32-80 كيلوبايت لكل نواة | ~0.7-1 نانوثانية | التعليمات والقيم التالية |
| ذاكرة التخزين المؤقت لوحدة المعالجة المركزية من المستوى الثاني | 0.5-2 ميجابايت لكل نواة | حوالي 3-4 نانوثانية | البيانات المستخدمة مؤخراً بالقرب من النواة |
| ذاكرة التخزين المؤقت لوحدة المعالجة المركزية من المستوى الثالث | 16-128 ميجابايت مشتركة | ~10-20 نانوثانية | البيانات المشتركة بين النوى |
| الذاكرة الرئيسية (RAM) | 8-64 جيجابايت | ~70-100 نانوثانية | تشغيل البرامج والبيانات النشطة |
| تخزين SSD | 256 جيجابايت - 4 تيرابايت | ~50-100 ميكروثانية | الملفات ونظام التشغيل |
| عقدة حافة شبكة توصيل المحتوى (CDN) | يختلف | حوالي 20 مللي ثانية عبر الشبكة | نسخ الويب بالقرب من الزائر |
| الأصل | يختلف | ~100-200 مللي ثانية عبر المنطقة | مصدر الحقيقة |
ذاكرة التخزين المؤقت للقرص ونظام التشغيل والتطبيقات
فوق مستوى المكونات المادية، يحتفظ البرنامج بذاكرته المؤقتة. يخزن نظام التشغيل البيانات التي يتم الوصول إليها بشكل متكرر، مثل الملفات المقروءة مؤخرًا، في ذاكرة الوصول العشوائي (RAM) الاحتياطية، مما يتيح إعادة فتحها فورًا. كما تخزن قواعد البيانات نتائج الاستعلامات الشائعة مؤقتًا. وتضيف التطبيقات طبقة مخصصة في الذاكرة، غالبًا ما تكون Redis أو Memcached، تتوسط بين التطبيق وقاعدة بياناته، وتستجيب للطلبات المتكررة في أجزاء من الثانية. وتتمثل وظيفتها في الاحتفاظ بالبيانات الأكثر استخدامًا في وحدة تخزين أسرع، لتجنب تكلفة البطء مرتين.
التخزين المؤقت من جانب الخادم وشبكة توصيل المحتوى (CDN)
تمتد الطبقة الخارجية عبر الإنترنت. فعندما يقوم خادم الويب بتخزين الصفحات الجاهزة مؤقتًا، فإنه يتجنب إعادة بنائها لكل زائر. أما شبكة توصيل المحتوى (CDN) فتتجاوز ذلك، إذ تنسخ هذه الملفات إلى خوادم طرفية موزعة حول العالم، بحيث تتم الاستجابة لكل طلب من جهاز قريب فعليًا من المستخدم. يمكن أن تصل استجابة خادم CDN الطرفي في غضون 20 مللي ثانية تقريبًا، مقارنةً بـ 100 إلى 200 مللي ثانية عندما يضطر الطلب لعبور القارات للوصول إلى المصدر. يهيمن هذا النموذج الآن على الويب: فبحلول عام 2024، كان ما يقرب من 75% من محتوى الجهات الخارجية يُقدّم عبر شبكة CDN.
ذاكرة التخزين المؤقت للمتصفح: ما يخزنه متصفح الويب الخاص بك
ذاكرة التخزين المؤقت للمتصفح هي التي يستخدمها معظم الناس فعليًا. عند تحميل موقع ويب، يقوم متصفحك تلقائيًا بتخزين أجزاء منه على جهازك: ملفات HTML، وأوراق الأنماط، والبرامج النصية، والصور، والخطوط. وعند العودة لاحقًا، يقرأ المتصفح هذه الملفات مباشرةً من القرص بدلًا من تحميلها مرة أخرى، وهذا ما يفسر سرعة فتح صفحة الويب في الزيارة الثانية مقارنةً بالزيارة الأولى. أما شعار الموقع، فيتم تحميله مرة واحدة، ثم يُعاد استخدامه في كل صفحة تظهر فيها.
ما يثير استغرابي هو أن معظم هذه السرعة لا تُستغل. ففي عام ٢٠٢١، كانت حوالي ٩٠.٤٪ من استجابات مواقع الويب على أجهزة الكمبيوتر قابلة للتخزين المؤقت ، ومع ذلك، لا تزال ٥٢٪ من المواقع تحت النسبة المئوية ٢٥ في تدقيق التخزين المؤقت القياسي للمتصفح. إنها فرصة ذهبية متاحة مجانًا، لكن معظم مواقع الويب تتجاهلها تمامًا. بمجرد إعداد التخزين المؤقت بشكل صحيح، ستلاحظ النتائج فورًا. ستصبح الزيارات المتكررة أسرع، وسيقل استهلاك بيانات الهاتف المحمول، وسيتوقف خادم المصدر عن استقبال الطلبات المتكررة نفسها.

فوائد التخزين المؤقت: لماذا يجعل الأمور أسرع
التخزين المؤقت هو مقايضة. أنت تستهلك القليل من الذاكرة وتقبل مخاطرة بسيطة بتقديم معلومات قديمة بعض الشيء، وفي المقابل تحصل على سرعة أكبر، وحمل أقل، وتكلفة أقل. هذه المزايا الثلاث هي السبب في انتشار التخزين المؤقت في جميع طبقات النظام بدلاً من طبقة واحدة فقط.
السرعة هي المكسب الأبرز: فتقديم نسخة من وحدة تخزين قريبة أفضل من إعادة حساب النتيجة أو نقلها عبر الشبكة. أما الفائدة الثانية فهي تقليل الحمل على المصدر. فكل طلب يُلبّى من ذاكرة التخزين المؤقت هو طلب لا يتعين على قاعدة البيانات أو خادم المصدر معالجته، مما يحافظ على استمرارية عمل الأنظمة أثناء ذروة حركة البيانات. أما الفائدة الثالثة فهي التكلفة: فتقديم البيانات المخزنة مؤقتًا من عقدة طرفية أرخص من إنشائها من جديد وإرسالها من خادم مركزي، وعندما تحتاج إلى الوصول إلى البيانات بشكل متكرر، يتضاعف هذا التوفير بسرعة.
إنّ تأثير أداء التطبيقات على تجربة المستخدم حقيقي وقابل للقياس. فقد أظهرت دراسة أجرتها جوجل عام ٢٠١٨ على مواقع الجوال أن تقليل وقت التحميل بثانية واحدة فقط يزيد من معدلات التحويل بنسبة تصل إلى ٢٧٪، بينما أشارت دراسة أخرى أجرتها مجموعة أبردين عام ٢٠١٢، والتي حظيت باهتمام واسع، إلى أن تكلفة تأخير ثانية واحدة تصل إلى ٧٪ من معدل التحويل. الصفحات الأسرع تحافظ على بقاء المستخدمين، والتخزين المؤقت هو أحد أقل الطرق تكلفة لتحقيق ذلك.
| نوع ذاكرة التخزين المؤقت | مكان عيشه | ما يخزنه | من يديره؟ | العمر النموذجي |
|---|---|---|---|---|
| ذاكرة التخزين المؤقت لوحدة المعالجة المركزية (L1/L2/L3) | على المعالج | تعليمات وبيانات ساخنة | الأجهزة، تلقائيًا | ميكروثانية |
| ذاكرة التخزين المؤقت للمتصفح | جهازك | HTML، CSS، JS، الصور، الخطوط | متصفح الويب الخاص بك | من ساعات إلى سنة |
| ذاكرة التخزين المؤقت للتطبيق | ذاكرة خادم التطبيق | نتائج الاستعلام، الجلسات | المطورون (Redis، Memcached) | من ثوانٍ إلى ساعات |
| ذاكرة التخزين المؤقت للخادم / شبكة توصيل المحتوى | خوادم الحافة في جميع أنحاء العالم | الصفحات، الوسائط، ردود واجهة برمجة التطبيقات | مالك الموقع وشبكة توصيل المحتوى (CDN) | لكل قيمة TTL للتحكم في ذاكرة التخزين المؤقت |
| ذاكرة التخزين المؤقت لنظام أسماء النطاقات (DNS) | نظام التشغيل، جهاز التوجيه، محلل أسماء النطاقات | عمليات البحث عن النطاق إلى عنوان IP | محلل نظام أسماء النطاقات (DNS) | من 5 دقائق إلى 24 ساعة |
هل يجب مسح البيانات المخزنة مؤقتًا، ومتى؟
يتعامل البعض مع مسح ذاكرة التخزين المؤقت كمهمة روتينية ضمن قائمة مهام الصيانة. لا داعي لهذه المهمة. إنها في الحقيقة أداة لحل المشكلات، لا أكثر. في معظم الأيام، اترك البيانات المخزنة مؤقتًا في مكانها، لأنها تُسرّع تحميل كل موقع تزوره.
متى يكون مسح ذاكرة التخزين المؤقت مُجديًا؟ بصراحة، في ثلاث حالات فقط. أولًا، إذا تعطل موقع ما أو استمر في عرض نسخة قديمة مُخزّنة مؤقتًا بعد التحديث، وكانت تلك النسخة القديمة في ذاكرة التخزين المؤقت للمتصفح هي السبب في أغلب الأحيان؛ فمسح ذاكرة التخزين المؤقت يُجبر على تنزيل جديد. ثانيًا، إذا كنت تستخدم جهاز كمبيوتر مشتركًا أو عامًا وتريد حذف أي أثر محلي لما شاهدته. ثالثًا، إذا كانت سعة هاتفك على وشك النفاد وتحتاج إلى استعادة المساحة، لأن ذاكرة التخزين المؤقت للمتصفح قد تتضخم تلقائيًا لتصل إلى عدة غيغابايتات. عدا ذلك، لا يُفيدك المسح بشيء. بل يُبطئ زيارتك التالية لكل موقع بينما يُعيد المتصفح بناء نسخه، وقد يُسجّل خروجك من بعض المتصفحات أثناء العملية. الخطأ الشائع هو أن مسح ذاكرة التخزين المؤقت لا يحذف ملفات تعريف الارتباط أو كلمات المرور المحفوظة. فهي موجودة في مخزن منفصل وتبقى حتى بعد مسح ذاكرة التخزين المؤقت، إلا إذا قمتَ بحذفها يدويًا.
| متصفح | أين يمكنني مسح ذاكرة التخزين المؤقت؟ |
|---|---|
| الكروم | الإعدادات، الخصوصية والأمان، حذف بيانات التصفح، الصور والملفات المخزنة مؤقتًا |
| فايرفوكس | الإعدادات، الخصوصية والأمان، ملفات تعريف الارتباط وبيانات الموقع، مسح البيانات |
| رحلة سفاري | الإعدادات، سفاري، مسح سجل التصفح وبيانات الموقع الإلكتروني |
| حافة | الإعدادات، الخصوصية، اختر ما تريد مسحه |
ذاكرة التخزين المؤقت مقابل ملفات تعريف الارتباط مقابل المخزن المؤقت: تبديد الالتباس
ثلاث كلمات، غالباً ما يُخلط بينها، وكلها تتعلق بتخزين البيانات. لكل منها وظيفة مختلفة. ذاكرة التخزين المؤقت (الكاش) تحتفظ بنسخ من المحتوى لتتمكن من الوصول إليه بسرعة أكبر في المرة القادمة. أما ملف تعريف الارتباط (الكوكيز) فهو عبارة عن ملاحظة صغيرة يتركها الموقع لتذكرك: جلسة تسجيل دخول، أو إعدادات اللغة، أو تفضيلات محفوظة. وهو يحمل هويتك، لا المحتوى. أما المخزن المؤقت (البريمب) فهو مختلف تماماً. فهو يحتفظ بالبيانات أثناء نقلها، مثل الثواني القليلة من الفيديو التي يتم تحميلها قبل الجزء الذي تشاهده. باختصار، البيانات المخزنة مؤقتاً تبقى لإعادة استخدامها، وملف تعريف الارتباط يتذكر هويتك، والمخزن المؤقت يُفرغ فور استخدامه.
ما يجب تذكره حول ذاكرة التخزين المؤقت والتخزين المؤقت
عندما تنظر إلى ذاكرة التخزين المؤقت على أنها مجرد "حفظ نسخة من البيانات البطيئة بالقرب من مكان الحاجة إليها"، فإنها تتوقف عن كونها ميزة في الجهاز، وتبدأ في الظهور كعادة متأصلة في جميع جوانب الحوسبة، بدءًا من جلب البيانات في 0.7 نانوثانية على وحدة المعالجة المركزية، وصولًا إلى نسخة من هذه الصفحة موجودة على خادم طرفي بالقرب من مدينتك. الدرس العملي هو ما لم يستوعبه الإنترنت بعد: معظم هذه السرعة مجانية، ومع ذلك لا تزال معظم المواقع تتجاهلها. في المرة القادمة التي تُفتح فيها صفحة بسرعة خاطفة، ستعرف بالضبط أي نسخة أنقذتك من هذا التأخير.