برمجة

Redis

ما هو Redis؟

يأخذ Redis اسمه من Remote Dictionary Server. فتحه Salvatore Sanfilippo سنة 2009. المكان الأساسي الذاكرة العاملة لا القرص. لذلك القراءة سريعة. حين ينطفئ الجهاز قد تذهب البيانات التي بقيت في الذاكرة فقط. الكتابة إلى القرص تُفتح على حدة: لقطة أو سجل عمليات. MySQL يحفظ صفوفاً وأعمدة. Redis يحفظ مفاتيح. أحدهما ليس اسم الآخر.

فيمَ يُستخدم Redis؟

Redis للجواب الذي يُسأل كثيراً ورقم الجلسة والعداد القصير المدة.

  • حفظ جواب جاهز للصفحة نفسها
  • ربط جلسة الدخول برقم
  • عدّ حد الدقيقة الواحدة
  • إضافة عمل قصير إلى الطابور

ماذا يمكن فعله باستخدام Redis؟

بـ Redis تكتب قيمة لمفتاح وتقرأها وتضع مدة. حين تنتهي المدة يُحذف المفتاح. لا يصلح مكاناً أساسياً للطلب. الطلب يجب أن يبقى في جدول يبقى على القرص. Redis قد يكون النسخة السريعة لذلك الجدول.

هل تعلم Redis صعب؟

كتابة مفتاح واحد سهلة. الصعوبة امتلاء الذاكرة. وضع كل شيء في Redis يملأ الجهاز. مفتاح بلا مدة قد يبقى. إذا لم تكن الكتابة إلى القرص مفتوحة حين ينطفئ الخادم قد يذهب آخر تغيير. لا تحفظ كلمة المرور ولا الصف الأساسي للدفع هنا.

المزايا والحدود

الميزة: القراءة سريعة والمدة تحذف وحدها والجواب نفسه لا يُحسب مرة أخرى. الحد: الذاكرة غالية وهناك خطر حين ينطفئ. Redis لا يحل محل MySQL. يحفظ الطبقة التي تُنظر بسرعة.

أفكار أساسية

المفتاح اسم. القيمة البيانات المربوطة بذلك الاسم. المدة تقول متى يُحذف المفتاح.

  • SET يكتب قيمة
  • GET يقرأ القيمة
  • EX يضع المدة بالثواني
  • الذاكرة أسرع من القرص لكنها تمتلئ

مثال قصير

هذا يكتب نصاً لمفتاح ويقول أن يُحذف بعد 60 ثانية. لا ينشئ جدولاً.

SET page:home "ready" EX 60

أسئلة شائعة

  • هل Redis وMySQL الشيء نفسه؟ لا. MySQL يحفظ جداول. Redis يحفظ مفاتيح ومكانه الأساسي الذاكرة.
  • هل يبقى كل شيء حين ينطفئ الجهاز؟ فقط إذا كانت الكتابة إلى القرص مفتوحة. وإلا قد يذهب آخر تغيير في الذاكرة.
  • هل تُحفظ كلمة المرور هنا؟ لا. هنا يقف ما يُحذف بسرعة ويُقرأ بسرعة.