В данный момент я работаю над приложением администратора проекта в C # 3.5 на ASP.net. Чтобы уменьшить количество попаданий в базу данных, я кеширую много информации, используя статические переменные. Например, список пользователей хранится в памяти в статическом классе. Класс считывает всю информацию из базы данных при запуске и обновляет базу данных при каждом внесении изменений, но ему никогда не нужно считывать данные из базы данных.
Класс пингует другие веб-серверы (если они существуют) с обновленной информацией одновременно с записью в базу данных. Механизм проверки связи - это служба Windows, в которой объект кэша регистрируется с использованием произвольно доступного порта. Используется и для других вещей.
Количество данных не так уж велико. На данный момент я использую его только для кеширования пользователей (хэши паролей, разрешения, имя, адрес электронной почты и т. Д.). Он просто сохраняет кучу звонков в базу данных.
Мне было интересно, есть ли какие-либо подводные камни в этом методе и / или есть ли лучшие способы для кэширования данных?