Redis (ioredis) لجافا سكريبت (Node.js): دليل شامل مع أمثلة

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

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

ابدأ الدورة

Redis (ioredis) لجافا سكريبت (Node.js): دليل شامل

Redis (Remote Dictionary Server) هو مخزن بيانات عالي الأداء من نوع "مفتاح-قيمة" يعمل في الذاكرة، ويُستخدم بشكل شائع كقاعدة بيانات وذاكرة تخزين مؤقت ووسيط للرسائل. للتعامل مع Redis من Node.js، توجد عدة عملاء، وتعتبر مكتبة ioredis واحدة من أقوى وأشهر هذه المكتبات وأكثرها أداءً. توفر هذه المكتبة مجموعة كاملة من الوظائف للتفاعل مع Redis، بما في ذلك دعم المجموعات (Clusters)، ونشر/اشتراك (Pub/Sub)، والمعالجة الخطية (Pipelining)، والمعاملات (Transactions)، وسكربتات Lua.

لماذا تحتاج هذه المكتبة؟ في تطوير الويب الحديث باستخدام Node.js، غالبًا ما نواجه الحاجة إلى الوصول السريع للبيانات. Redis، بفضل عمله في الذاكرة، يوفر سرعة قراءة/كتابة لا يمكن تحقيقها بواسطة قواعد البيانات العلائقية التقليدية. تتيح ioredis للمطورين دمج هذه القوة بسهولة في تطبيقاتهم: تخزين نتائج الاستعلامات المعقدة مؤقتًا، إدارة جلسات المستخدمين، تنفيذ قوائم المهام، أنظمة التصنيف، وغيرها الكثير. صُممت المكتبة مع مراعاة الطبيعة غير المتزامنة لـ Node.js، وتدعم بشكل كامل Promises و async/await، مما يجعل الكود نظيفًا وقابلًا للتوقع.

الميزة الرئيسية لـ ioredis مقارنة بالعملاء الآخرين (مثل node_redis القديم) هي الدعم المدمج لمجموعات Redis و Sentinel، بالإضافة إلى إعادة الاتصال التلقائي. المكتبة مدعومة بنشاط من قبل المجتمع، ولديها وثائق مفصلة، وتُستخدم في بيئات الإنتاج من قبل آلاف الشركات حول العالم. إنها مناسبة لكل من السكربتات البسيطة والأنظمة الموزعة عالية التحميل.

التثبيت

يتم تثبيت مكتبة ioredis عبر مدير الحزم npm (Node Package Manager). تأكد من تثبيت Node.js (الإصدار 12 أو أعلى) و npm على جهازك.

npm install ioredis

إذا كنت تستخدم yarn، فسيكون الأمر كالتالي:

yarn add ioredis

بعد التثبيت، ستكون المكتبة متاحة للاستيراد في مشروعك. للعمل، تحتاج أيضًا إلى خادم Redis قيد التشغيل. إذا لم يكن لديك واحد، يمكنك تثبيته محليًا أو استخدام Docker:

docker run -d --name redis-stack -p 6379:6379 redis/redis-stack-server:latest

البداية السريعة

أنشئ ملفًا باسم app.js واكتب الكود التالي الذي يتصل بـ Redis، ويحفظ قيمة، ويقرأها.

// استيراد مكتبة ioredis
const Redis = require('ioredis');

// إنشاء عميل جديد. افتراضيًا، يتصل بـ localhost:6379
const redis = new Redis();

// دالة غير متزامنة لعرض العمل
async function quickStart() {
  try {
    // تعيين مفتاح 'name' بقيمة 'مستخدم PythonLib'
    await redis.set('name', 'مستخدم PythonLib');
    console.log('تم تعيين المفتاح "name".');

    // الحصول على قيمة المفتاح 'name'
    const result = await redis.get('name');
    console.log(`قيمة المفتاح "name": ${result}`);

    // التحقق من وجود المفتاح
    const exists = await redis.exists('name');
    console.log(`المفتاح "name" موجود: ${exists === 1}`);

    // إغلاق الاتصال
    redis.quit();
  } catch (error) {
    console.error('خطأ:', error);
    redis.quit();
  }
}

quickStart();

شغّل السكربت: node app.js. يجب أن ترى في وحدة التحكم رسائل تؤكد نجاح تعيين وقراءة المفتاح. هذا مثال أساسي يوضح مدى سهولة البدء مع ioredis.

الطرق والفئات الأساسية

توفر ioredis عشرات الطرق التي تتوافق مع أوامر Redis. فيما يلي 8 من أكثر الطرق استخدامًا مع شرح مفصل وأمثلة.

1. set(key, value, ...args)

التوقيع: redis.set(key: string, value: string | number | Buff

توصيات