Локальный кэш (Windows Azure Caching)
Локальный кэш — это компонент Windows Azure Caching, повышающий производительность за счет снижения интенсивности сетевых запросов к удаленному кэшу. Windows Azure Caching хранит объекты в сериализованном виде в кэше в памяти, распределенном по нескольким серверам. Когда приложение запрашивает объект в кэше, определяется сервер, где он хранится. Затем этот сервер отправляет сериализованный объект запросившему его приложению по сети. После этого приложение десериализует объект и использует. Для ускорения процесса извлечения объекта можно включить локальный кэш.
Общие сведения о локальном кэше
Если локальный кэш включен, клиент кэша хранит локальную ссылку на объект. При этом объект остается активным в памяти клиентского приложения. Когда приложение запрашивает объект, клиент кэша сначала проверяет наличие объекта в локальном кэше. В случае наличия объекта сразу же возвращается ссылка на него, и обращение к серверу не производится. Если объект отсутствует, он запрашивается с сервера. Клиент кэша затем десериализует объект и сохраняет ссылку на только что полученный объект в локальном кэше. Клиентское приложение использует этот же объект.
Время жизни объекта в локальном кэше зависит от ряда факторов, например максимального числа объектов в локальном кэше и политики недействительности. Имеются два типа недействительности для локального кэша: на основе тайм-аута и на основе уведомлений. Дополнительные сведения см. в разделе Окончание срока действия и вытеснение (Windows Azure Caching).
Параметры конфигурации
Локальный кэш можно включить и настроить в файле конфигурации приложения или web.config. Вы можете добавить элемент localCache в раздел dataCacheClient. В следующей таблице содержится описание атрибутов элемента localCache.
| Атрибут | Описание |
|---|---|
|
isEnabled |
Задайте значение |
|
sync |
Определяет политику недействительности локального кэша. Возможны значения — |
|
objectCount |
Максимальное количество объектов в локальном кэше. Значение по умолчанию равно 10000. |
|
ttlValue |
Время хранения объектов в локальном кэше в секундах. Значение по умолчанию составляет 300 секунд. |
Значение sync, равное TimeoutBased, позволяет хранить объекты в локальном кэше до тех пор, пока не будет достигнут предел ttlValue. Значение NotificationBased позволяет использовать не только срок действия, но и уведомления. Чтобы использовать уведомления о недействительности, включите уведомления для кэша. Интервал опроса при проверке уведомлений об изменении элементов в локальном кэше. Эффективный интервал опроса уведомлений должен быть меньше параметра ttlValue. Дополнительный элемент, clientNotification, позволяет настроить интервал опроса уведомлений, задав атрибут pollInterval с указанием числа секунд. Значение по умолчанию составляет 300 секунд.
Примечание |
|---|
| Уведомления — это функция Caching, поддерживаемая только в кэшах, размещенных в ролях Windows Azure. Уведомления не поддерживаются в Windows Azure Shared Caching. |
Примеры
В следующем примере показан раздел dataCacheClient, использующий локальный кэш с временной политикой срока действия (300 секунд).
<dataCacheClient name="default">
<!-- Other configuration settings for cache -->
<localCache isEnabled="true" sync="TimeoutBased" objectCount="100000" ttlValue="300" />
</dataCacheClient>
В следующем примере показан приведенный выше раздел dataCacheClient, измененный так, чтобы использовать уведомления для дополнительной синхронизации путем опроса каждую минуту (60 секунд). Уведомления поддерживаются только в Caching на основе ролей.
<dataCacheClient name="default">
<autoDiscover isEnabled="true" identifier="WebRole1" />
<localCache isEnabled="true" sync="NotificationBased" objectCount="100000" ttlValue="300" />
<clientNotification pollInterval="60" />
</dataCacheClient>
Загружаемый пример с локальным кэшем см. в разделе Пример работы с API Caching и производительностью.
См. также
Дата сборки:
Примечание