انتقل إلى المحتوى

Redis

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

الميزات

  • مخزن مفتاح-قيمة في الذاكرة
  • تخزين مؤقت قائم على TTL
  • مراسلة Pub/Sub
  • طوابير مهام BullMQ
  • آلية قفل موزع
  • توفر عالٍ عبر Cluster و Sentinel

حالات الاستخدام

  • تخزين استجابات واجهة برمجة التطبيقات مؤقتاً
  • إدارة جلسات المستخدمين
  • تحديد معدل الطلبات والحماية من هجمات DDoS
  • طوابير المهام الخلفية
  • لوحات المتصدرين (leaderboard)

التفاصيل

التخزين المؤقت عالي السرعة باستخدام Redis

Redis (خادم القاموس البعيد) هو مخزن هياكل بيانات مفتوح المصدر يعمل في ذاكرة الوصول العشوائي (RAM). قادر على تنفيذ ملايين العمليات في الثانية، ويُعد Redis مثالياً لتخزين استعلامات قاعدة البيانات مؤقتاً، وإدارة الجلسات، والتواصل في الوقت الفعلي عبر نمط النشر والاشتراك (pub/sub) للرسائل.

في مشاريع Detartech، ننشر Redis عبر طبقات متعددة. نخزّن استجابات واجهة برمجة التطبيقات واستعلامات قاعدة البيانات باستخدام تخزين مؤقت قائم على TTL، مما يقلل حمل قاعدة البيانات بنسبة 60-80% للاستعلامات المتكررة. ندير طوابير المهام عبر مكتبة BullMQ، معالجين مهاماً خلفية مثل إرسال البريد الإلكتروني، وتوليد التقارير، وتسليم webhook بشكل غير متزامن. كما نفضل Redis لتنفيذ تحديد معدل الطلبات وآليات القفل الموزع.

أين تستخدم Detartech قاعدة Redis؟

Redis هي أداتنا الافتراضية لطبقة التخزين المؤقت. وأوضح مثال على ذلك مشروع Biletico: فأثناء إعادة بناء الواجهة ومخطط المقاعد القائم على canvas ومسار الدفع في منصة التذاكر التي تسلمناها، أُضيف التخزين المؤقت عبر Redis إلى بنية Next.js وNode.js، واستُخدمت MongoDB لجانب البيانات. وينطبق هنا النهج الذي نشرحه في صفحة خدمة توسيع نطاق الخلفية: يُكتب مسبقًا عمر كل سجل في الذاكرة المؤقتة والحدث الذي يُسقطه، ويُوثَّق ما لا يدخل الذاكرة المؤقتة بوصفه قرارًا مستقلًا.

متى تكون Redis الخيار الصحيح؟

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

متى لا تكون Redis هي الحل؟

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

ماذا صنعنا بهذا؟

لنستخدم هذه التقنية في مشروعك

فريقنا متخصص في هذه التقنية. دعنا نقيّم مشروعك معًا.

اطلب استشارة مجانية