8 دقائق
يُعَد Redis (اختصارًا لعبارة REmote DIctionary Server) مخزن NoSQL مفتوح المصدر للبيانات بنمط المفتاح/القيمة، يعمل في الذاكرة، ويُستخدم بشكل أساسي كذاكرة مؤقتة للتطبيقات أو كقاعدة بيانات سريعة الاستجابة.
يعمل Reds على تخزين البيانات في الذاكرة بدلًا من القرص الصلب أو محركات الحالة الثابتة (SSD)، ما يوفر سرعة وأداء وموثوقية لا مثيل لها.
عند اعتماد التطبيق على مصادر بيانات خارجية، يمكن أن يؤدي زمن الانتقال ومعدل نقل البيانات لتلك المصادر إلى بطء في الأداء، خاصةً مع زيادة حركة المرور أو توسّع التطبيق. تتمثل إحدى طرق تحسين الأداء في هذه الحالات في تخزين البيانات ومعالجتها في الذاكرة، بحيث تكون أقرب فعليًا إلى التطبيق. تم تصميم Redis لهذه المهمة: فهو يخزِّن كل البيانات في الذاكرة -ما يوفر أسرع أداء ممكن عند قراءة البيانات أو كتابتها- ويوفر إمكانيات تكرار مدمجة تسمح لك بوضع البيانات أقرب فعليًا إلى المستخدم بأقل زمن انتقال.
من الخصائص الأخرى في Redis الجديرة بالذكر: دعمه لعدة هياكل بيانات، ووجود دعم مدمج للبرمجة النصية بلغة Lua، ومستويات متعددة من التخزين المستمر على القرص، والتوفُّر العالي.
يتميز Redis عن مخازن البيانات NoSQL "التقليدية" باعتباره مكونًا مساعدًا تم تصميمه خصيصًا لتحسين أداء التطبيق. فيما يلي بعض قدرات Redis المميزة:
مرة أخرى، وعلى عكس قواعد بيانات NoSQL مثل MongoDB وPostgreSQL، فإن Redis يخزِّن البيانات في الذاكرة الرئيسية للخادم بدلًا من الأقراص الصلبة ومحركات الحالة الصلبة. يؤدي هذا إلى أوقات استجابة أسرع بكثير عند إجراء عمليات القراءة والكتابة. كما أنه يساعد على ضمان التوافر العالي (مع Redis Sentinel) وقابلية التوسع في الخدمات وأعباء عمل التطبيقات.
يستطيع Redis ترتيب المهام في قائمة انتظار عندما تستغرق معالجتها من قِبل عملاء الويب وقتًا أطول من المعتاد. يُعَد تنظيم المهام متعددة العمليات أمرًا شائعًا في العديد من التطبيقات الحديثة المستندة إلى الويب، ويسهِّل Redis تنفيذ عمليات مكتوبة بلغة Python تعمل تلقائيًا في خلفية دورات الطلب/الاستجابة.
على الرغم من كونه من الناحية التقنية مخزنًا لقيم ومفاتيح، فإن Redis يُعَد خادمًا فعليًا لهياكل البيانات، ويدعم أنواعًا وبنى متعددة من البيانات، منها:
يوفر Redis قدرات تكامل أصلية مع العملاء لمساعدة المطورين على التعامل مع بياناتهم والتفاعل معها. يوجد حاليًا ما يزيد عن 100 عميل مختلف مفتوح المصدر متاح في مكتبة عملاء Redis، ويمكن للمطورين إضافة التكاملات الجديدة بسهولة لدعم الميزات واللغات البرمجية الإضافية.
تتضمن بعض الميزات الأكثر أهمية أو الجديرة بالملاحظة في Redis ما يلي:
يُعَد Redis Sentinel نظام موزع مستقل يساعد المطورين على معايرة مثيلاتهم لتكون متاحة بدرجة عالية للعملاء. يستخدم Sentinel سلسلة من عمليات المراقبة والإشعارات وعمليات تجاوز الفشل التلقائية لإعلام المستخدمين عندما يكون هناك خطأ ما في المثيلات الرئيسية والتابعة، مع إعادة تكوين الاتصالات الجديدة تلقائيًا للتطبيقات عند الضرورة.
يُعَد Redis Cluster تطبيقًا موزّعًا من Redis يقوم تلقائيًا بتقسيم مجموعات البيانات بين عدة عُقد. يدعم هذا أداءً أعلى وقابلية أكبر للتوسع في نشر قواعد البيانات، مع ضمان استمرارية التشغيل في حال تعذُّر تواصل بعض العُقد مع بقية المجموعة.
نظرًا لأن Redis يدعم استخدام أوامر النشر والاشتراك (Pub/Sub)، يمكن للمستخدمين تصميم خدمات دردشة ومراسلة عالية الأداء عبر جميع تطبيقاتهم وخدماتهم. يتضمن ذلك القدرة على استخدام هياكل بيانات القائمة لتشغيل العمليات الذَرية وقدرات الحظر.
يستخدِم Redis تخزينًا دائمًا على الأقراص مُصممًا لتحمُّل انقطاعات العمليات والعوائق في الشبكة. يستطيع Redis الاحتفاظ بمجموعات البيانات من خلال أخذ لقطات منتظمة للبيانات وإلحاق التغييرات بها فور توفرها. يمكن بعد ذلك ضبط Redis لإنشاء نسخ احتياطية من قاعدة البيانات عند الطلب أو على فترات تلقائية لضمان استمرارية البيانات وسلامتها.
يُعَد كلٌّ من Redis وMemcached من مخازن البيانات الموجودة في الذاكرة ومفتوحة المصدر، لكنهما يختلفان من حيث الميزات والفوائد. غالبًا ما يكون Memcached هو الخيار المفضل للتطبيقات البسيطة التي تتطلب موارد ذاكرة أقل، ولكنه محدود عند تخزين البيانات في شكلها المتسلسل. يوفر استخدام Redis لهياكل البيانات قدرًا أكبر من القوة عند التعامل مع مجموعات البيانات الكبيرة، بالإضافة إلى قدرة أعلى على ضبط محتوى الذاكرة المؤقتة بدقة والحفاظ على كفاءة أكبر في سيناريوهات التطبيقات المتخصصة.
بينما يُعَد Redis مخزن بيانات في الذاكرة، تُعرَف MongoDB بأنها مخزن مستندات على الأقراص. وعلى الرغم من أن كِلا الحلين مصممان لأغراض مختلفة، إلا أنهما غالبا ما يُستخدمان معًا لزيادة سرعة وكفاءة قاعدة بيانات NoSQL. نظرًا لقدرته على التخزين المؤقت، يستطيع Redis تحديد موقع البيانات المطلوبة بسرعة كبيرة، حيث يعمل كمخزن مؤقت للاستيعاب يجعل MongoDB أكثر كفاءة وقدرة على إدارة الترددات الأكبر من تحديثات المستندات في زمن شبه حقيقي تقريبًا. وبفضل قدرة MongoDB على تخزين كميات كبيرة من البيانات وقدرة Redis على معالجتها بشكل أسرع، فإن الاقتران يوفر حلًا قويًا لإدارة قواعد البيانات لمجموعة متنوعة من حالات الاستخدام.
فيما يلي بعض حالات الاستخدام التي تستفيد منها الشركات عند العمل باستخدام Redis:
يُعَد البدء باستخدام Redis عملية سلسة إلى حد كبير، خاصةً عند استخدام Redis Desktop Manager (RDM). وبما أن Redis وRDM مفتوحان المصدر، فإن مجتمعات التطوير النشطة تعمل باستمرار على تحسين كفاءتهما التشغيلية وتطوير الأدوات والتكاملات المدعومة.
للمزيد من المعلومات حول تثبيت وإعداد Redis، اتَّبِع تعليمات الإعداد في المجتمع.
استخدم حلول قاعدة بيانات IBM لتلبية احتياجات أحمال التشغيل المتنوعة عبر السحابة الهجينة.
اكتشف، IBM Db2، وهي قاعدة بيانات علائقية توفر مستوى عالٍ من الأداء وقابلية التوسع والموثوقية لتخزين وإدارة البيانات المنظمة. وتتوفر كنظام SaaS على IBM Cloud أو للاستضافة الذاتية.
استفِد من قيمة بيانات المؤسسة مع IBM Consulting لبناء مؤسسة تعتمد على الرؤى لتحقيق ميزة تنافسية في الأعمال.