Какая стратегия кэширования мне нужна в этом случае?

#asp.net #caching #.net-4.0

#asp.net #кэширование #.net-4.0

Вопрос:

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

Все данные хранятся в базе данных SQL Server 2008. Большая часть этих «статических» данных будет редко меняться. Иногда его нужно будет обновлять, и когда это произойдет, у меня не возникнет проблем с перезапуском приложения для обновления кэша, если оно реализовано.

Некоторые данные, которые являются более «динамическими», будут храниться в той же базе данных. Эти данные включают контакты, статистику и т. Д. И Будут меняться чаще (от ежечасно до ежедневно или еженедельно). Эти данные будут связаны со статическими данными выше с помощью внешних ключей (точно так же, как соединение SQL).

Мой вопрос в том, что именно я пытаюсь здесь реализовать? и как мне начать это делать? Я знаю, что статические данные будут кэшироваться, но я не знаю, с чего начать. Я пытался искать, но нашел так много вещей, и я не уверен, с чего начать. Рекомендации по учебным пособиям также будут оценены.

Ответ №1:

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

Ответ №2:

Чрезвычайно простой «выигрыш» здесь (я предполагаю, что вы используете WCF здесь) будет заключаться в использовании декларативного механизма кэширования на основе атрибутов, встроенного в фреймворк. Ее легко настроить и управлять, но вам нужно проанализировать свои сценарии использования, чтобы убедиться, что она применяется в нужных местах, чтобы действительно извлечь из нее выгоду. Эта статья является хорошей отправной точкой.

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