Hallo!
Ich habe einige Lasttests an einer Discourse-Instanz durchgeführt und festgestellt, dass die Redis-Cache-Trefferquote sank, anstatt zu steigen, als ich denselben Kommentarthread wiederholt abrufte. Das war etwas unerwartet (bei einer Mischung aus Lese- und Schreibzugriffen sahen wir eine Cache-Trefferquote von bis zu 85 %, bei 100 % Lesezugriffen fiel sie sogar auf bis zu 22 %).
Ich habe etwas im Codebase und in den Foren hier gesucht, aber mir ist noch nicht ganz klar, wie genau der Redis-Cache genutzt wird. Im README heißt es dazu:
Wir verwenden Redis als Cache und für flüchtige Daten.
Ich habe redis-cli verwendet, um die Befehle zu speichern, die während des oben genannten Lasttests an den Redis-Cache gesendet wurden. Dabei sah ich hauptsächlich „get"-Befehle für geplante Aufgaben und für Schlüssel mit dem Präfix „__mb_backlog_id_n_" (ich nehme an, das bezieht sich auf MessageBus-Funktionen).
Ich habe folgende Fragen:
- Gibt es eine „einfache" Möglichkeit, im Codebase nachzusehen, welche Daten in Redis gecacht werden? Ich würde diese Fragen gerne selbst beantworten können, bin aber leider nicht besonders vertraut mit Ruby on Rails-Anwendungen (oder Ruby im Allgemeinen).

- Beeinflusst der Login-Status (eingeloggt/ausgeloggt) die Cache-Trefferquote? Als Referenz: Der oben genannte Lasttest wurde mit einem Admin-API-Schlüssel durchgeführt.
- Werden häufig abgefragte oder relativ statische Daten wie Post-Inhalte in Redis gecacht? Oder wird Redis hauptsächlich für die Job-Planung und Hintergrundverarbeitung mit Sidekiq und ähnlichen Tools genutzt?
Vielen Dank im Voraus!