Redis: دورة Redis التعليمية - الصفحة الرئيسية

Redis هي قاعدة بيانات مفتوحة المصدر من نوع مفتاح-قيمة تعمل في الذاكرة، يمكن استخدامها كقاعدة بيانات وذاكرة تخزين مؤقت ووسيط رسائل. تدعم Redis هياكل بيانات متعددة، وتقدم أداءً عاليًا جدًا، وهي مكون أساسي في تطبيقات الويب الحديثة.

1. ما هي Redis؟

Redis تعني REmote DIctionary Server (خادم القاموس البعيد)، طورها Salvatore Sanfilippo في عام 2009. تخزن البيانات في الذاكرة، مما يوفر سرعات قراءة وكتابة فائقة تصل إلى أكثر من 100,000 عملية في الثانية.

(1) الميزات الأساسية لـ Redis

الميزة الوصف
التخزين في الذاكرة تُخزّن البيانات في الذاكرة لسرعات قراءة وكتابة فائقة
الاستمرارية تدعم لقطات RDB وتسجيل AOF
أنواع بيانات غنية تدعم السلاسل والتجزئات والقوائم والمجموعات والمجموعات المرتبة والمزيد
عمليات ذرية جميع العمليات ذرية مع دعم المعاملات
نشر/اشتراك نظام رسائل مدمج للنشر والاشتراك
أداء عالٍ QPS للمثيل الواحد قد تتجاوز 100,000 مع دعم النسخ المتماثل والمجموعات
💡 لماذا سميت Redis؟ Redis = REmote DIctionary Server، لأنها في الأساس خدمة قاموس (مفتاح-قيمة) قابلة للوصول عن بُعد.


2. ماذا يمكن أن تفعل Redis؟

(1) نظام التخزين المؤقت

هذه هي حالة الاستخدام الأكثر شيوعًا. خزّن نتائج استعلامات قاعدة البيانات واستجابات API وأجزاء الصفحات في Redis لتعزيز أداء التطبيق بشكل كبير.

TEXT 📖 للعرض فقط
طلب المستخدم → التحقق من ذاكرة Redis المؤقتة → وجود ⇒ إرجاع
                                        ← عدم وجود
                                       استعلام DB → تخزين في Redis → إرجاع

(2) تخزين الجلسات

خزّن حالة تسجيل دخول المستخدم وعربات التسوق والبيانات المؤقتة في Redis لدعم مشاركة الجلسات عبر البيئات الموزعة.

(3) قائمة انتظار الرسائل

استخدم قوائم Redis ونظام النشر/الاشتراك لتنفيذ قوائم انتظار رسائل خفيفة.

(4) لوحات المتصدرين

استفد من قدرات الفرز للمجموعات المرتبة للوحات المتصدرين في الألعاب وقوائم الاتجاهات والمزيد.

(5) العدادات

استخدم أمر INCR على السلاسل لإحصاءات مشاهدة المقالات والإعجابات وإحصاءات الزيارات والمزيد.

(6) الميزات الاجتماعية

استخدم عمليات تقاطع واتحاد المجموعات لتنفيذ الأصدقاء المشتركين والأشخاص الذين قد تعرفهم وميزات اجتماعية أخرى.


3. Redis مقابل قواعد البيانات الأخرى

(1) Redis مقابل Memcached

الجانب Redis Memcached
أنواع البيانات غنية (5 أنواع أساسية) سلاسل فقط
الاستمرارية مدعومة غير مدعومة
التجميع دعم أصلي يتطلب تجزئة من جانب العميل
إدارة الذاكرة أكثر مرونة أبسط
الأداء عالٍ جدًا عالٍ جدًا
⚠️ كيف تختار؟ إذا كنت تحتاج فقط تخزينًا مؤقتًا بسيطًا لمفتاح-قيمة، فإن Memcached كافية. إذا كنت تحتاج هياكل بيانات معقدة أو استمرارية أو تجميعًا، اختر Redis.

(2) Redis مقابل قواعد البيانات العلائقية (MySQL)

الجانب Redis MySQL
التخزين ذاكرة قرص
نموذج البيانات مفتاح-قيمة جداول علائقية
قدرة الاستعلام بسيطة قوية (SQL)
دعم المعاملات معاملات بسيطة ACID كامل
الأداء عالٍ جدًا عالٍ
الاستمرارية اختيارية افتراضية
💡 أفضل الممارسات: استخدم Redis + MySQL معًا — Redis للتخزين المؤقت والبيانات الساخنة، MySQL للتخزين الدائم.

(3) Redis مقابل MongoDB

الجانب Redis MongoDB
نموذج البيانات مفتاح-قيمة مستند (JSON)
لغة الاستعلام قائمة على الأوامر شبيهة بـ SQL
استخدام الذاكرة كلها في الذاكرة ذاكرة + قرص
حالات الاستخدام تخزين مؤقت، جلسات، قوائم انتظار تخزين مستندات، إدارة محتوى

4. حالات استخدام Redis

(1) تستخدمها شركات الإنترنت الكبرى

(2) سيناريوهات التطبيق النموذجية

السيناريو نوع البيانات المستخدم الوصف
تخزين مؤقت String تخزين بيانات مؤقتة مع انتهاء صلاحية
تخزين جلسات String تخزين معلومات جلسة المستخدم
عربة تسوق Hash تخزين معرفات المنتجات وكمياتها
قائمة انتظار رسائل List LPUSH/RPOP لقائمة الانتظار
لوحة متصدرين Sorted Set فرز تلقائي، تحديثات فورية
علاقات اجتماعية Set قوائم الأصدقاء، حسابات التقاطع
عداد String INCR زيادة ذرية
تحديد معدل String + TTL تتبع عدد الزيارات

5. تاريخ إصدارات Redis

الإصدار تاريخ الإصدار الميزات الرئيسية
1.0 2009 الإصدار الأولي
2.0 2010 ذاكرة افتراضية، نشر/اشتراك
2.6 2012 برمجة Lua، دقة محسّنة لانتهاء الصلاحية
2.8 2013 مزامنة جزئية، إعادة كتابة الإعدادات
3.0 2015 دعم المجموعات الرسمي
3.2 2016 تحسينات GEO و bitmap
4.0 2017 نظام الوحدات، استمرارية هجينة
5.0 2018 نوع البيانات Streams
6.0 2020 التحكم في الوصول ACL، I/O متعدد الخيوط
7.0 2022 Functions، AOF متعدد الأجزاء
💡 الإصدار الموصى به: استخدم Redis 6.0 أو أحدث لأداء أفضل وميزات أكثر.


6. لمن هذه الدورة؟


7. المتطلبات الأساسية


8. محتويات الدورة

تنقسم هذه الدورة إلى 4 أجزاء:

  1. أساسيات Redis: التثبيت، الإعدادات، العمليات الأساسية
  2. أنواع البيانات بالتفصيل: السلاسل، التجزئات، القوائم، المجموعات، المجموعات المرتبة
  3. الميزات المتقدمة: المعاملات، الاستمرارية، الأمان، تحسين الأداء
  4. التطبيقات العملية: استخدام Redis مع Python و Java و Node.js

▶ مثال

الاتصال والعمليات الأساسية:

BASH
127.0.0.1:6379> PING
PONG

127.0.0.1:6379> SET mykey "Hello"
OK
127.0.0.1:6379> GET mykey
"Hello"

❓ أسئلة شائعة

س Redis تخزن البيانات في الذاكرة — هل تُفقد البيانات عند انقطاع التيار؟
ج تدعم Redis الاستمرارية، حيث تحفظ البيانات من الذاكرة إلى القرص. يمكنك استخدام لقطات RDB أو تسجيل AOF أو كليهما。
س كم كمية البيانات التي يمكن لـ Redis تخزينها؟
ج يعتمد على الذاكرة المتاحة. يمكن لمثيل Redis واحد تخزين عدة جيجابايت من البيانات، ويمكن للتجميع التوسع إلى مستويات تيرابايت。
س هل Redis أحادية الخيط؟
ج تنفيذ الأوامر الأساسية في Redis أحادي الخيط، لكن الإصدار 6.0 قدم I/O متعدد الخيوط لقراءة وكتابة الشبكة. التصميم أحادي الخيط يتجنب تنازع الأقفال، مما يحسن الأداء فعليًا。
س ما الفرق بين Redis وقاعدة البيانات التقليدية؟
ج Redis هي قاعدة بيانات NoSQL تخزن البيانات في الذاكرة، مثالية للتخزين المؤقت والبيانات الساخنة. قواعد البيانات التقليدية تخزن البيانات على القرص للتخزين الدائم. تُستخدم عادةً معًا。

📖 ملخص

📝 تمارين

  1. فكر: في مشاريعك، أي السيناريوهات مناسبة لاستخدام Redis؟
  2. ابحث: انظر إلى المواقع أو التطبيقات التي تستخدمها بانتظام — ماذا قد تستخدم Redis فيه؟
  3. قارن: ما هي إيجابيات وسلبيات Redis مقابل Memcached؟ كيف ستختار؟

9. الدرس التالي

في الدرس التالي، سنتعلم تثبيت Redis، والذي يغطي التثبيت على Linux و Windows و Mac.

Web-Tutorial.com

فريق Web-Tutorial التقني

منصة دروس برمجية يديرها عدة مطورين. كل درس يتم كتابته ومراجعته بواسطة مطورين متخصصين في المجال. نعمل على ضمان دقة وموثوقية المحتوى — إذا لاحظت أي مشكلة، فيرجى إخبارنا.

100%