Olá!
Estou realizando alguns testes de carga em uma instância do Discourse e notei que, ao buscar repetidamente o mesmo tópico de comentários, a taxa de acertos no cache do Redis caiu, em vez de subir — o que foi um pouco inesperado (para uma mistura de leituras/escritas, vimos uma taxa de acertos de até 85%; para 100% de leituras, a taxa caiu para tão baixo quanto 22%).
Fiz algumas buscas no código e nos fóruns aqui, e ainda não está muito claro para mim como exatamente o cache do Redis é utilizado. O README afirma o seguinte:
Usamos o Redis como cache e para dados transitórios.
Usei o redis-cli para listar os comandos enviados ao cache do Redis durante o teste de carga mencionado acima, e vi principalmente comandos “get” para jobs agendados e para chaves com o prefixo “__mb_backlog_id_n_” (acredito que isso se refira a funcionalidades do MessageBus).
Tenho as seguintes perguntas:
- Existe uma maneira “fácil” de pesquisar no código quais partes dos dados estão sendo armazenadas em cache no Redis? Adoraria conseguir responder a essas perguntas sozinho, mas, infelizmente, não sou muito familiarizado com aplicações Ruby on Rails (ou com Ruby em geral, na verdade).

- O fato de estar logado ou deslogado impacta as taxas de acerto no cache? Como referência, o teste de carga mencionado acima usava uma chave de API de administrador.
- Dados frequentemente consultados ou relativamente estáticos, como o conteúdo das publicações, são armazenados em cache no Redis? Ou o Redis é usado principalmente para agendamento de jobs e processamento em segundo plano com Sidekiq e afins?
Obrigado desde já!