Memcached لتخزين الجلسات والكائنات مؤقتًا
استخدموا Memcached كمخزن موزّع داخل الذاكرة لكائنات PHP
Memcached لتخزين الجلسات والكائنات مؤقتًا درس مجاني في PHP Academy على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في PHP Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة PHP Academy 4 دروس في المجموع.
ما هو Memcached؟
Memcached هو مخزن عالي الأداء وموزع للقيم المفتاحية داخل الذاكرة. ويُستخدم على نطاق واسع لتخزين نتائج استعلامات قاعدة البيانات وبيانات الجلسات مؤقتًا في تطبيقات PHP.
التثبيت
ثبّت خادم Memcached وإضافة PHP.
# Ubuntu/Debian:
$ apt install memcached php-memcached
$ service memcached start
# Verify:
$ php -m | grep memcachedالاتصال بـ Memcached
أنشئ مثيلًا من Memcached وأضف خادمًا واحدًا أو عدة خوادم.
<?php
$mc = new Memcached();
$mc->addServer("127.0.0.1", 11211);
// Multiple servers (distributed caching):
$mc->addServers([
["192.168.1.10", 11211],
["192.168.1.11", 11211],
]);عمليات التخزين المؤقت الأساسية
عيّن إدخالات التخزين المؤقت واحصل عليها واحذفها واستبدلها.
<?php
// Set with TTL:
$mc->set("product:1", $productData, 600); // 10 min
// Get:
$product = $mc->get("product:1");
if ($mc->getResultCode() === Memcached::RES_NOTFOUND) {
$product = fetchFromDB(1);
$mc->set("product:1", $product, 600);
}
// Delete:
$mc->delete("product:1");تخزين الجلسات باستخدام Memcached
خزّن جلسات PHP في Memcached للوصول السريع والمشترك إليها عبر عدة خوادم ويب.
# php.ini:
session.save_handler = memcached
session.save_path = "127.0.0.1:11211"تكامل Laravel مع Memcached
اضبط Memcached واستخدمه كمشغّل التخزين المؤقت في Laravel.
# .env
CACHE_DRIVER=memcached
MEMCACHED_HOST=127.0.0.1
// Usage is identical to Redis via Cache facade:
Cache::put("key", $value, 300);
$value = Cache::get("key");Memcached مقابل Redis
Memcached: أبسط، ومتعدد الخيوط، ويعمل بالكامل داخل الذاكرة دون استمرارية. Redis: أنواع بيانات أغنى، واستمرارية اختيارية (AOF/RDB)، ونشر واشتراك، ومجموعات. بالنسبة إلى التخزين المؤقت البحت، يتشابه أداء النظامين. ويُفضَّل Redis عمومًا في المشاريع الجديدة.
التخزين المؤقت الموزع
يوزّع Memcached المفاتيح تلقائيًا على عدة خوادم باستخدام التجزئة المتسقة. ويسمح ذلك بالتوسّع أفقيًا مع نمو حركة المرور.
العملية الذرية CAS (المقارنة والاستبدال)
يدعم Memcached عمليات CAS لتحديث قيمة بأمان، ولكن فقط إذا لم يغيّرها أي عميل آخر منذ آخر مرة قرأتها فيها.
<?php
$mc->get("counter", null, $cas);
$mc->cas($cas, "counter", $newValue, 60);حدود TTL
تقتصر مدة TTL في Memcached على 30 يومًا كحد أقصى. وتُرفض القيم التي يزيد حجمها على نحو 1 ميغابايت. احرص على إبقاء قيم التخزين المؤقت صغيرة وتسلسلها بكفاءة.
المراقبة
استخدم memcached-tool 127.0.0.1:11211 stats للتحقق من معدل الإصابة واستخدام الذاكرة والقيم المُزالة. ويشير انخفاض معدل الإصابة أو ارتفاع عدد القيم المُزالة إلى أن حجم التخزين المؤقت صغير جدًا.
ملخّص
يتفوّق Memcached في التخزين المؤقت الموزع البسيط للكائنات والجلسات. في Laravel، عيّن CACHE_DRIVER=memcached. وفي بيئات الإنتاج التي تتطلب ميزات أغنى، يُفضَّل Redis.
تحقق سريع
ما أحد الفروق الأساسية بين Memcached وRedis؟
الأسئلة الشائعة
هل درس «Memcached لتخزين الجلسات والكائنات مؤقتًا» مجاني؟
نعم — نص درس «Memcached لتخزين الجلسات والكائنات مؤقتًا» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة PHP Academy، انتقل إلى CoddyKit PRO. تتضمن دورة PHP Academy 4 دروس في المجموع.
ماذا ستتعلم في «Memcached لتخزين الجلسات والكائنات مؤقتًا»؟
استخدموا Memcached كمخزن موزّع داخل الذاكرة لكائنات PHP تتمرن على PHP Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ PHP Academy؟
لا تُشترط خبرة سابقة. PHP Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.
كم من الوقت يستغرق درس «Memcached لتخزين الجلسات والكائنات مؤقتًا»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس PHP Academy هذا؟
نعم. كل درس في PHP Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- لماذا تُعدّ التخزينات المؤقتة مهمة في PHP
- Redis كخلفية للتخزين المؤقت في PHP
- Memcached لتخزين الجلسات والكائنات مؤقتًا
- أنماط إبطال التخزين المؤقت