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.

2 « J'aime »

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.

1 « J'aime »

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.

6 « J'aime »

Thank you for the warning! :bowing_man:

2 « J'aime »

@sam, ton avertissement :fire: de 2018 concernant le message bus lié exclusivement à la base de données Redis db 0 est-il toujours exact, ou pouvons-nous désormais utiliser un autre ID de base de données d’une instance Redis pour héberger différentes instances de Discourse ?

J’ai remarqué dans le tutoriel multisite-configuration-with-docker qu’un db_id: 2 est défini. J’ai pensé que cela pourrait faire référence à l’ID de la base de données Redis, d’où cette question :face_with_monocle:

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

Oui, c’est toujours 100 % exact, d’après ce que je sais. PUB/SUB dans Redis est lié à la base de données 0. Discourse multisite est conçu pour fonctionner correctement avec plusieurs instances se connectant à un seul Redis utilisant la base de données 0.

Pub/Sub n’a aucun lien avec l’espace de clés. Il a été conçu pour ne pas interférer avec celui-ci à aucun niveau, y compris les numéros de base de données.

La publication sur la base de données 10 sera entendue par un abonné sur la base de données 1.

2 « J'aime »