ИСПРАВЛЕНО: Избегать обхода ключей Redis при очистке кэша темы 404

В #42413 логика инвалидации кэша для тем была переработана.

Однако Discourse.cache.keys("page_not_found_topics:*").each { |key| Discourse.cache.redis.del(key) } будет перебирать все ключи Redis, что вызывает проблемы с производительностью и может привести к тайм-ауту при большом количестве ключей.

В такой ситуации пользователи могут столкнуться с ошибкой 500, если переместят тему в ограниченную категорию.

Этот коммит ограничивает область перебора ключом Discourse.cache.normalize_key("page_not_found_topics:#{locale}"), который значительно меньше всего Redis, а также добавляет тест, чтобы избежать выполнения scan_each. В #42413 логика инвалидации кэша для тем была переработана.