Лучший способ использовать контроллеры с кэшированными данными в .Net Core 2.0 - PullRequest
0 голосов
/ 05 марта 2019

Я создал приложение .Net Core, которое состоит из 8 контроллеров и 12 репозиториев.Приложению не хватает скорости, и ему необходимо уменьшить количество запросов, отправляемых в базу данных SQL.

Все контроллеры создают новое соединение для загрузки данных через репозитории при получении запроса от пользователя.Я считаю, что лучший способ улучшить ядро ​​- это кэшировать все данные и хранить их в памяти репозитория

. В настоящее время все репозитории имеют список кэшированных результатов, который заполняется во время инициализации (я просто вызываю SELECT * FROM table и помещает данные в список)

Проблема заключается в том, что контроллеры хранят разные экземпляры одних и тех же репозиториев, где каждый репозиторий имеет собственный кэшированный список.Это работает, но не идеально, потому что необходимо обновить кэш и хранить кэшированные списки на всех контроллерах.

1 Ответ

1 голос
/ 05 марта 2019

Я бы сохранил внедрение зависимостей на основе экземпляра для репозиториев, но я бы удостоверился, что в репозитории внедряется одноэлементный кеш, который они используют для извлечения данных.Таким образом вы гарантируете, что каждый экземпляр репозитория обращается к одному и тому же кешу.Не уверен, что вы используете IMemoryCache IMemoryCache , но это хороший пример.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...