Я создал приложение .Net Core, которое состоит из 8 контроллеров и 12 репозиториев.Приложению не хватает скорости, и ему необходимо уменьшить количество запросов, отправляемых в базу данных SQL.
Все контроллеры создают новое соединение для загрузки данных через репозитории при получении запроса от пользователя.Я считаю, что лучший способ улучшить ядро - это кэшировать все данные и хранить их в памяти репозитория
. В настоящее время все репозитории имеют список кэшированных результатов, который заполняется во время инициализации (я просто вызываю SELECT * FROM table
и помещает данные в список)
Проблема заключается в том, что контроллеры хранят разные экземпляры одних и тех же репозиториев, где каждый репозиторий имеет собственный кэшированный список.Это работает, но не идеально, потому что необходимо обновить кэш и хранить кэшированные списки на всех контроллерах.