الـRedis هو In-Memory Data Store سريع الأداء يُستخدم لتخزين البيانات التي تحتاج الوصول إليها بشكل متكرر وسريع. يوفر مجموعة متنوعة من الهياكل مثل Strings، Lists، Sets، Hashes وغيرها، مما يجعله خيارًا مثاليًا للتعامل مع البيانات المؤقتة.
أهم المواضيع حول Redis
1. متى تستخدم Redis؟
الـRedis يُستخدم في سيناريوهات الأداء العالي، مثل:
- التخزين المؤقت (Caching):
- بدلاً من تكرار استعلامات معقدة على قواعد بيانات تقليدية مثل MySQL أو MongoDB، يمكن تخزين نتائج الاستعلام في Redis للوصول السريع.
- مثال: في تطبيق مراسلة، تخزين آخر 5 رسائل لكل مستخدم باستخدام هيكل البيانات Lists.
- إدارة الجلسات (Session Management):
- تخزين بيانات الجلسة الخاصة بالمستخدم.
- الـQueue Systems:
- إدارة قوائم الانتظار والرسائل.
2. مميزات Redis
- أداء عالي:
- سريع جدًا في عمليات القراءة والكتابة لأنه يعتمد على الـ RAM.
- سهولة الاستخدام:
- أوامر بسيطة وسهلة الدمج مع التطبيقات.
- تنوع الهياكل:
- يدعم Strings, Lists, Sets, Hashes، مما يتيح مرونة في التعامل مع البيانات.
- العمليات الذرية (Atomic Operations):
- تضمن الاتساق في العمليات المعقدة.
- خيارات الاستدامة (Persistence):
- دعم Snapshots وAppend-Only Files لتوفير استدامة جزئية للبيانات.
- التكرار وتوافر عالي:
- يدعم Master-Slave Replication لتوفير نسخ احتياطية وتحمل الأعطال.
3. عيوب Redis
- تعقيد الاستدامة:
- الخيارات مثل Snapshots أو Append-Only Files قد تكون معقدة وتؤثر على الأداء.
- محدودية الاستعلامات:
- لا يدعم الاستعلامات المعقدة مثل قواعد البيانات التقليدية.
- استهلاك الذاكرة:
- يعتمد على الـ RAM، مما يجعله مكلفًا للتعامل مع مجموعات بيانات ضخمة.
- طبيعة أحادية الخيط (Single-Threaded):
- قد يواجه صعوبة في الاستفادة الكاملة من الأنظمة متعددة الأنوية.
- قيود الأمان:
- في الإصدارات القديمة، افتقر إلى ميزات الأمان.
Install Redis
Install Redis on Windows | Docs Releases · tporadowski/redis
لكي يتم التعرف على أمر redis-server
من أي مكان في الـ Command Line:
- افتح إعدادات النظام:
- اضغط Win + R واكتب:
sysdm.cpl
- اضغط Enter.
- تعديل متغيرات البيئة:
- اذهب إلى علامة التبويب Advanced.
- اضغط على Environment Variables.
- تحت System Variables، ابحث عن متغير Path واضغط Edit.
- إضافة مسار Redis إلى Path:
- اضغط New.
- أضف المسار إلى مجلد Redis الذي يحتوي على الملفات التنفيذية، مثل:
C:\redis
- حفظ التغييرات:
- اضغط OK لحفظ كل النوافذ المفتوحة.
4. كيفية بدء Redis Server
- تشغيل Redis Server:
redis-server
لو ظهرت مشكلة ففالغالب ال port مشغول
-
التحقق مما إذا كان المنفذ 6379 مستخدمًا بالفعل:
-
على نظام Windows، افتح موجه الأوامر (Command Prompt) كمسؤول واستخدم الأمر التالي:
netstat -ano | findstr :6379
-
إذا ظهر أي عملية تستخدم المنفذ 6379، لاحظ رقم المعرف (PID).
-
يمكنك إنهاء العملية باستخدام:
taskkill /PID [PID] /F
مع استبدال
[PID]
برقم العملية.
-
- الاتصال بـ Redis CLI:
redis-cli
- المنفذ الافتراضي: 6379.
أو استخدم برنامج زي Redily أو DBeaver
هياكل البيانات في Redis
- Strings: القيم البسيطة.
- Lists: قائمة مرتبة.
- Sets: مجموعة غير مرتبة ولا تحتوي على عناصر مكررة.
- الـHashes: تخزين البيانات على شكل Key-Value داخل مفتاح رئيسي.
- Sorted Sets: مجموعة مرتبة بعناصر مميزة.
- HyperLogLog: لتقدير الأعداد الفريدة.
أوامر Redis الأساسية
-
SET/GET:
- إضافة واسترجاع البيانات.
SET key value GET key
-
DEL:
- حذف المفتاح.
DEL key
-
EXPIRE:
- تعيين وقت انتهاء.
EXPIRE key 60
-
HSET/HGET:
- إدارة Hashes.
HSET user:1 name "John" HGET user:1 name
-
LPUSH/LPOP:
- إدارة القوائم.
LPUSH list "item1" LPOP list
استخدام Redis في السيناريوهات المختلفة
- التخزين المؤقت (Caching):
- تسريع التطبيقات عن طريق تخزين النتائج.
- إدارة الجلسات:
- تخزين بيانات المستخدمين المؤقتة.
- إدارة الرسائل (Messaging):
- إدارة قوائم الانتظار والـ Streams.
مقارنة Redis مع قواعد البيانات التقليدية
الميزة | Redis | MySQL/MongoDB |
---|---|---|
الأداء | أسرع بسبب العمل على RAM | أبطأ بسبب الاعتماد على الـ Disk |
الاستدامة (Persistence) | أقل استدامة (دعم Snapshots و AOF فقط) | أكثر استدامة |
نوع البيانات | Key-Value وهياكل بيانات مخصصة | جداول وصفوف (Relational/NoSQL) |
الحجم | محدود بحجم الذاكرة (RAM) | يدعم مجموعات بيانات ضخمة |
الـRedis هو الحل المثالي للتعامل مع البيانات المؤقتة وسيناريوهات الأداء العالي، ويُكمل قواعد البيانات التقليدية مثل MySQL أو MongoDB في الأنظمة الحديثة.