مرحبًا!
أجريت بعض اختبارات الحمل على نسخة من Discourse، ولاحظت أنه عند جلب خيط التعليقات نفسه مرارًا وتكرارًا، انخفضت نسبة نجاح التخزين المؤقت في Redis بدلاً من ارتفاعها، وهو أمر غير متوقع إلى حد ما (لخليط من عمليات القراءة/الكتابة، شهدنا نسبة نجاح تصل إلى 85%، أما في حالة القراءة بنسبة 100% فقد انخفضت النسبة إلى ما يصل إلى 22%).
قمت بالبحث في قاعدة الكود وفي المنتديات هنا، ولا يزال لي واضح تمامًا كيف يُستفاد من التخزين المؤقت في Redis بالضبط. يذكر ملف README ما يلي:
نستخدم Redis كـ تخزين مؤقت وللمؤقتات المؤقتة.
استخدمت أمر redis-cli لتفريغ الأوامر المرسلة إلى تخزين Redis المؤقت أثناء اختبار الحمل المذكور أعلاه، ورأيت في الغالب أوامر “get” للمهام المجدولة وللمفاتيح التي تبدأ بـ “__mb_backlog_id_n_” (أعتقد أن هذا يشير إلى أمور MessageBus).
لدي الأسئلة التالية:
- هل توجد طريقة “سهلة” للبحث في قاعدة الكود لمعرفة أي أجزاء من البيانات يتم تخزينها مؤقتًا في Redis؟ سأحب جدًا أن أتمكن من الإجابة على هذه الأسئلة بنفسي، لكنني للأسف لست على دراية كافية بتطبيقات Ruby on Rails (أو حتى Ruby بشكل عام حقًا).

- هل يؤثر تسجيل الدخول/تسجيل الخروج على معدلات نجاح التخزين المؤقت؟ للمرجعية، كان اختبار الحمل المذكور أعلاه يستخدم مفتاح واجهة برمجة تطبيقات (API) خاصًا بمسؤول.
- هل يتم تخزين البيانات التي تُستعلم عنها بشكل متكرر أو الثابتة نسبيًا مثل محتويات المنشورات في Redis؟ أم أن Redis يُستخدم في المقام الأول لجدولة المهام ومعالجة الخلفية باستخدام Sidekiq وما شابه؟
شكرًا مقدّمًا!