node-cache: التخزين المؤقت البسيط والفعال في Node.js

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

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

ابدأ الدورة
```html

ما هو node-cache؟

node-cache هي مكتبة خفيفة الوزن للتخزين المؤقت الداخلي للبيانات في تطبيقات Node.js. تعمل كمخزن في الذاكرة (in-memory store)، مما يسمح بحفظ نتائج العمليات الحسابية مؤقتًا، أو ردود API، أو البيانات من قاعدة البيانات، لتجنب إعادة تنفيذ العمليات الثقيلة.

لماذا نحتاج التخزين المؤقت في JavaScript؟

التخزين المؤقت أمر بالغ الأهمية للأداء. بدونه، قد يؤدي كل طلب إلى الخادم إلى استدعاءات متكررة للخدمات الخارجية، أو استعلامات لقاعدة البيانات، أو عمليات حسابية معقدة. يحل node-cache هذه المشكلة عن طريق حفظ البيانات في الذاكرة مع وقت حياة محدد (TTL). هذا يقلل الحمل على الخادم ويقلص وقت الاستجابة بمقدار 2–5 مرات للبيانات المطلوبة بشكل متكرر.

التثبيت

لتثبيت المكتبة، قم بتنفيذ الأمر التالي في جذر مشروعك:

npm install node-cache

بعد التثبيت، قم بتضمين الوحدة في الكود:

const NodeCache = require('node-cache');

الوظائف الأساسية

  • set(key, value, [ttl]) — يحفظ قيمة تحت مفتاح معين مع وقت حياة اختياري بالثواني.
  • get(key) — يعيد القيمة المحفوظة أو undefined إذا لم يتم العثور على المفتاح أو انتهت صلاحيته.
  • has(key) — يتحقق من وجود المفتاح (يعيد true/false).
  • del(key) — يحذف مفتاحًا واحدًا أو أكثر.
  • flushAll() — يمسح ذاكرة التخزين المؤقت بالكامل.
  • keys() — يعيد مصفوفة بجميع المفاتيح النشطة.
  • getStats() — إحصائيات: hits, misses, keys, ksize و vsize.

مثال كود على Node.js

const NodeCache = require('node-cache');const myCache = new NodeCache({ stdTTL: 600, checkperiod: 120 });

// حفظ البياناتmyCache.set('user_123', { name: 'Alice', role: 'admin' }, 300);

// استرجاع البياناتconst user = myCache.get('user_123');if (user === undefined) { console.log('ذاكرة التخزين المؤقت فارغة، جلب البيانات من قاعدة البيانات');} else { console.log('البيانات من ذاكرة التخزين المؤقت:', user);}

// الإحصائياتconsole.log(myCache.getStats());// { hits: 1, misses: 0, keys: 1, ksize: 8, vsize: 32 }

متى تستخدم node-cache؟

المكتبة مثالية من أجل:

  • تخزين ردود API مؤقتًا — تجنب الطلبات المتكررة للخدمات الخارجية (مثل الطقس، أسعار العملات).
  • نتائج العمليات الحسابية الثقيلة — حفظ نتيجة معالجة البيانات لمدة 5–10 دقائق.
  • بيانات الجلسات — تخزين مؤقت للرموز المميزة (tokens) أو إعدادات المستخدم.
  • ذاكرة تخزين مؤقت وسيطة بين الخدمات المصغرة — تقليل استدعاءات الشبكة.

هام: node-cache غير مناسب للأنظمة الموزعة (يعمل فقط في ذاكرة عملية واحدة). للتخزين المؤقت الموزع، استخدم Redis أو Memcached.

الخلاصة

node-cache هو حل بسيط وموثوق للتخزين المؤقت في الذاكرة (in-memory caching) في Node.js. لا يتطلب إعداد خدمات خارجية، وسهل التكامل، ويسرّع التطبيق بشكل كبير. ابدأ باستخدامه اليوم بمجرد إضافة بضعة أسطر من الكود.

```

توصيات