How to set redis DB ID in Docker container?

I have one data container and I would like to use several web_only containers (several forums on separate servers). How to I pass a DB ID to web_only container so that multiple forums use their own cache?

Without this the stats reported in Admin -> Reports are mixed up between different forums.

I’ve got the same issue. I have an existing redis cluster (with replication and failover) that I want Discourse to use, but I can’t find a way to tell Discourse which database index to use.

I’ve found the corresponding setting via this answer. It’s hidden in discourse_defaults.conf:

It’s called redis_db, so the corresponding setting in the container yaml should be DISCOURSE_REDIS_DB.

Definitely do not do anything like this :fire: . Message Bus which is responsible for long polling relies on pub/sub, pub/sub is always on “db 0” not configurable.

If you try to co-host multiple Discourses on one Redis DB expect some very major amount of breakage.

Thank you for the warning! :bowing_man:

@sam هل تحذيرك :fire: من عام 2018 حول حافلة الرسائل المرتبطة حصريًا بقاعدة بيانات Redis db 0 لا يزال دقيقًا، أم يمكننا الآن استخدام معرف قاعدة بيانات مختلف من مثيل Redis لاستضافة نسخ مختلفة من Discourse؟

لاحظت في دليل multisite-configuration-with-docker وجود db_id: 2 مُعرَّف، فظننت أنه قد يشير إلى معرف قاعدة بيانات Redis، ومن هنا جاء هذا الاستفسار :face_with_monocle:

         secondsite:
           adapter: postgresql
           database: b_discourse
           pool: 25
           timeout: 5000
           db_id: 2
           host_names:
             - b.discourse.example.com

نعم، هذا صحيح بنسبة 100% حسب علمي. إن نظام النشر والاشتراك (PUB/SUB) في Redis مرتبط بقاعدة البيانات 0. تم تصميم نظام Discourse متعدد المواقع للعمل بشكل ممتاز مع عدة instances تتحدث إلى Redis واحد باستخدام قاعدة البيانات 0.

لا علاقة لنظام النشر والاشتراك (Pub/Sub) بمساحة المفاتيح. تم تصميمه لعدم التدخل في أي مستوى، بما في ذلك أرقام قواعد البيانات.

النشر في قاعدة البيانات 10 سيُسمع من قبل مشترك في قاعدة البيانات 1.