المقدمة

Redis (اختصارًا لـ Remote Dictionary Server) هي قاعدة بيانات مفتوحة المصدر تعمل في ال Memory , بنستخدمها بشكل أساسي ك Cache أو Quick-Response Database في التطبيقات التي تحتاج زمن إستجابة منخفض والسرعة فيها مهمة.

وعشان كدا Redis بتخزن البيانات بداخل الـ RAM بدلاً من ال HDD أو ال SSD واللي فرق السرعة في تخزين واسترجاع البيانات بينهم كبير جدًا.

كمان ليها استخدامات ثانية كثيرة نعرفها لأنها أداة مرنة بتخزن جميع أنواع البيانات ك Key-Value Pair وتتيح لك هياكل البيانات الأساسية واللي تقدر تستخدمها في تطبيقات متنوعة.


المميزات

  • أداء عالي: لأنها بتوفر زمن استجابة منخفض جدًا (ميلي ثانية) بسبب تخزين البيانات في الذاكرة.
  • دعم هياكل بيانات متنوعة: تدعم أنواع مثل ( Strings, Hash, bitmap, list, set) وده بيخليها مرنة للاستخدام في أنواع مختلفة من التطبيقات
  • قابلة للتوسع Scalable: حيث يمكن توزيعها علي عدة Nodes أو استخدام الـ Replication لضمان توفر البيانات.
  • التخزين الدائم: بالرغم من كونها قاعدة بيانات في الذاكرة، إلا أنها توفر خيارات تخزين مثل "snapshots" أو "Append Only File (AOF)" لحفظ البيانات بشكل دائم.
  • مجتمع ودعم قوي: مدعومة بمجموعة واسعة من الأدوات والمكتبات

الاستخدامات

الـ Caching: تستخدم Redis بشكل رئيسي Cache لتخزين البيانات مؤقتًا في الذاكرة. هذا يساعد في تسريع أداء التطبيقات التي تعتمد على قواعد البيانات التقليدية.

الـ Real-Time Analytics: تخزن Redis البيانات اللازمة لتحليلات الوقت الحقيقي مثل تتبع المستخدمين النشطين على موقع ما.

الـ Session Management: تُستخدم لتخزين وإدارة بيانات الجلسات (sessions) لتطبيقات الويب، مثل بيانات المستخدم أثناء تسجيل الدخول.

الـ Message Queues: يمكن استخدامها كنظام إدارة قوائم الانتظار لتنظيم المهام أو الرسائل بين المكونات المختلفة للتطبيق.

الـ Pub/Sub:تدعم Redis نموذج النشر/الاشتراك (Publish/Subscribe) لتوفير الاتصال بين الأنظمة والتطبيقات في الزمن الفعلي.


مثال عملي علي استخدامها كـ Cache

مثال:

لنفترض أن لديك موقعًا إلكترونيًا يُظهر قائمة بأحدث المقالات من قاعدة بيانات MySQL.

كيف يعمل؟

  1. عندما يطلب المستخدم القائمة لأول مرة، يتم جلبها من MySQL وتخزينها في Redis.
  2. الطلبات اللاحقة تحصل على البيانات من Redis بدلًا من MySQL.