قاعدة بيانات Redis

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

يُعرف أيضًا بـ ذاكرة تخزين مؤقت مخزن مفتاح وقيمة خادم كاش

التعريف

Redis مخزن صغير وسريع جدًا يقف بجانب موقعك ويحفظ الأشياء في الذاكرة. والذاكرة هي مساحة العمل التي يستخدمها الجهاز وهو مشغّل، والقراءة منها أسرع آلاف المرات من القراءة من القرص الصلب. وهذا الفارق هو سبب وجود Redis كله.

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

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

وهنا الجزء الذي تتعلمه الفرق بالطريقة الصعبة، فالذاكرة تُفرَّغ لحظة إعادة تشغيل الجهاز. يستطيع Redis أن يكتب نسخة على القرص لكنه يفعل ذلك على فترات، فإعادة تشغيل في اللحظة الخطأ تضيّع آخر ثوانٍ. وهذا مقبول لصفحة محفوظة مؤقتًا وغير مقبول لطلب شراء، ولهذا لا ينبغي أن يكون مهمًا أي شيء نسخته الوحيدة داخل Redis. والمفاجأة الثانية أن Redis مسموح له افتراضيًا باستخدام كل الذاكرة المتاحة، فحين تنفد ذاكرة الجهاز يتضرر كل ما عليه لا التخزين المؤقت وحده. وفي لينكي سوفت لنظم المعلومات نضبط هذا الحد في اليوم الأول من كل مشروع، فاسأل مورّدك عن قيمة الحد وعمّا يُحذف عند بلوغه.

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

أسئلة حول قاعدة بيانات Redis

هل Redis قاعدة بيانات؟
من الناحية التقنية نعم، لكنه ليس المكان الذي تحفظ فيه نسختك الوحيدة. اعتبره رفًا سريعًا بجانب المخزن الحقيقي يحمل نسخًا مما يطلبه الناس أكثر.
هل يفقد Redis البيانات عند إعادة تشغيل الخادم؟
قد يفقدها. كل شيء موجود في الذاكرة ويُكتب على القرص على فترات، فإعادة التشغيل في اللحظة الخطأ تضيّع آخر ثوانٍ. فلا تدع طلب شراء يوجد فيه وحده.
هل أحتاج Redis لموقع صغير؟
غالبًا لا في البداية. فموقع بمئات الزوار يوميًا لا ينتظر قاعدة البيانات. أضفه حين تبطؤ الصفحات تحت الضغط، وقِس قبل أن تضيفه.
هل Redis مجاني؟
تستطيع تثبيته وتشغيله بنفسك بلا تكلفة. أما النسخة المُدارة فتُستأجر، ويُحسب سعرها على حجم الذاكرة التي تحجزها لا على ما تستخدمه فعلًا منها.
ما الفرق بين Redis وMemcached؟
كلاهما يحفظ في الذاكرة. لكن Memcached يخزن قيمًا بسيطة فقط، بينما يتعامل Redis أيضًا مع القوائم والعدادات والطوابير ويستطيع حفظ نسخة على القرص، ولهذا تختاره أغلب المشاريع الجديدة.

ما زلت غير متأكد كيف ينطبق هذا على مشروعك؟

أخبرنا بما تبنيه وسنجيبك بلغة واضحة.