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