Как использовать кеширование с WCF - PullRequest
4 голосов
/ 14 декабря 2011

Я разрабатываю WCF, который будет возвращать данные JSON. Метод примет параметр и вернется с данными из базы данных.

Если нагрузка на WCF высока, было бы здорово использовать некоторое кэширование, чтобы не приходилось постоянно копаться в БД.

EDIT: Метод вернет последние элементы. Таким образом, метод должен возвращать один и тот же ответ для всех запросов, который обеспечивает тот же интервал времени, что и параметр.

Как это можно сделать эффективно? Я немного прочел о базовом кэшировании веб-службы HTTP, но не уверен, что это лучшее решение.

Большое спасибо.

Ответы [ 2 ]

1 голос
/ 14 декабря 2011

Лично я хотел бы, чтобы мои службы WCF были готовы к сеансу и сохраняли свои кеши в сеансе.Компромисс всегда находится между тем, насколько статичны данные, и тем, сколько данных необходимо извлечь.

Для очень статичных данных я могу кешировать длину сеанса или пока данные не изменились(определение, изменил ли другой пользователь кэшированные данные моего сеанса, - это другая история).Для очень динамических данных мне трудно доверять моему кешу дольше, чем несколько минут (что все еще не совсем безопасно).

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

Если вы говорите о кэшировании клиента, то вы можете кэшировать файлы cookie,кэшируйте переменные javascript, используйте http-кэширование или вышеупомянутый механизм кэширования приложений HTML 5.

Это все о подходящем инструменте для работы, хотя в этом случае молотка нет;)

0 голосов
/ 14 декабря 2011

Вы можете использовать HTTP Cache Control: http://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html

Или HTML 5 Кэш приложений: http://www.html5rocks.com/en/tutorials/appcache/beginner/

Как ваши клиенты будут использовать Службу WCF?Через JQuery AJAX запросы?Стандартные GET-запросы?

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