Переход с общего кэша к управляемой службе кэша Azure

Важно!

Корпорация Майкрософт рекомендует всем новым разработкам использовать кэш Redis для Azure. Текущую документацию и рекомендации по выбору предложения кэша Azure см. в статье о том, какое предложение кэша Azure подходит для меня?

Перенос приложений, использующих общий кэш Microsoft Azure в управляемая служба кэша, можно выполнить с минимальными изменениями в приложении. Так как управляемая служба кэша использует большую часть того же API, что и общий кэш, существующий код, использующий общий кэш для доступа к кэшу, можно повторно использовать с управляемая служба кэша. В этом разделе показано, как внести необходимые изменения в конфигурацию и приложение для переноса приложений общий кэш для использования управляемая служба кэша.

Примечание

Общий кэш Azure был прекращен в сентябре 2014 года. Рекомендуется перейти в кэш Redis для Azure, но если вы хотите переместить приложение без изменений кода, вы можете перейти к управляемая служба кэша. В этом разделе рассматривается переход на управляемая служба кэша;. Рекомендации по миграции в кэш Redis для Azure см. в статье "Миграция из общий кэш в кэш Redis для Azure (предварительная версия)".

Этапы миграции

В следующих разделах описаны шаги, необходимые для переноса приложения общий кэш Microsoft Azure для использования управляемая служба кэша.

  • Выбор уровня кэша.

  • Создание кэша.

  • Настройка кэша

  • Настройка клиентов кэша.

    • Удаление конфигурации общего кэша

    • Настройка клиента кэша с помощью пакета NuGet для Caching

  • Перенос кэша состояний сеансов и кэша вывода ASP.NET

Выбор уровня кэша.

управляемая служба кэша доступны в следующих трех предложениях.

  • Basic — кэш размером от 128 МБ до 1 ГБ с шагом 128 МБ, один именованный кэш по умолчанию.

  • Standard — кэш размером от 1 до 10 ГБ с приращением в 1 ГБ, а также поддержкой уведомлений, высокого уровня доступности и до десяти именованных кэшей.

  • Premium — кэш размером от 5 до 150 ГБ с шагом 5 ГБ, поддержка уведомлений, высокой доступности и до десяти именованных кэшей.

Примечание

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

Все функции кэша общий кэш доступны во всех трех предложениях управляемая служба кэша, поэтому отправной точкой для миграции является выбор предложения кэша управляемая служба кэша, соответствующего размеру учетной записи общий кэш. После развертывания приложения можно отслеживать производительность кэша и масштабировать его в зависимости от потребностей приложения. Дополнительные сведения о мониторинге производительности и масштабировании см. в статье "Мониторинг Azure управляемая служба кэша и масштабирование кэша для Azure управляемая служба кэша".

Создание кэша.

Экземпляры кэша в управляемая служба кэша создаются с помощью скриптов PowerShell.

Важно!

После создания экземпляра управляемая служба кэша с помощью командлетов PowerShell его можно просмотреть и настроить на портале управления Azure.

Создание экземпляра управляемая служба кэша

  1. Откройте командное окно Azure PowerShell.

    Примечание

    Инструкции по установке и использованию Azure PowerShell см. в разделе Установка и настройка Microsoft Azure PowerShell.

  2. Вызовите командлет Add-AzureAccount и введите электронный адрес и пароль, связанный с вашей учетной записью.

    Примечание

    Если вы настроили Azure PowerShell сертификатом для своей учетной записи, этот шаг можно пропустить. Дополнительные сведения о подключении Azure PowerShell к своей учетной записи Azure см. в разделе Установка и настройка Azure PowerShell.

  3. Вызовите командлет New-AzureManagedCache и укажите имя, область, размер кэша и память кэша. В приведенном примере в географической области contosocache создан кэш South Central US размера Basic с памятью 128 МБ.

    New-AzureManagedCache -Name contosocache -Location "South Central US" -Sku Basic -Memory 128MB
    

    Примечание

    Полный список параметров и значений, которые могут использоваться при создании кэша, доступны в документации по командлету New-AzureManagedCache.

  4. После вызова командлета PowerShell cоздание кэша может занять несколько минут. После создания кэша новый кэш имеет состояние "Выполняется " и готов к использованию с параметрами по умолчанию. Его можно просмотреть и настроить на портале управления Azure.

    Ход выполнения операции создания можно отслеживать в окне Azure PowerShell. Как только кэш будет готов к использованию, командлет New-AzureManagedCache выведет информацию о кэше, как показано в приведенном примере.

    PS C:\> Add-AzureAccount
    VERBOSE: Account "user@domain.com" has been added.
    VERBOSE: Subscription "MySubscription" is selected as the default subscription.
    VERBOSE: To view all the subscriptions, please use Get-AzureSubscription.
    VERBOSE: To switch to a different subscription, please use Select-AzureSubscription.
    PS C:\> New-AzureManagedCache -Name contosocache -Location "South Central US" -Sku Basic -Memory 128MB
    VERBOSE: Intializing parameters...
    VERBOSE: Creating prerequisites...
    VERBOSE: Verify cache service name...
    VERBOSE: Creating cache service...
    VERBOSE: Waiting for cache service to be in ready state...
    
    
    Name     : contosocache
    Location : South Central US
    State    : Active
    Sku      : Basic
    Memory   : 128MB
    
    
    
    PS C:\>
    

Настройка кэша

управляемая служба кэша поддерживает именованные кэши, которые обеспечивают гибкость при настройке различных параметров кэша для различных наборов данных. У каждого кэша есть именованный кэш default, а при использовании предложений кэша Standard и Premium можно настроить до девяти дополнительных именованных кэшей. У каждого именованного кэша собственные настройки, в том числе параметры высокого уровня доступности, уведомлений, а также настраиваемые политики вытеснения и срока действия. Параметры именованного кэша можно настроить на портале управления, на вкладке "Configure" (Настройка) для кэша.

Named Caches in Windows Azure Cache Service

В следующей таблице перечислены различия в параметрах кэша между управляемая служба кэша и общий кэш.

Компонент поддержка управляемая служба кэша поддержка общий кэш

имя;

Кэш default настроен предварительно, и при использовании предложений кэша Standard и Premium можно дополнительно настроить до девяти именованных кэшей.

Только кэш по умолчанию.

Обеспечение высокого уровня доступности

Обеспечивается высокий уровень доступности элементов кэша. Если вследствие сбоя элементы утрачиваются, резервные копии элементов в кэше остаются доступными.

Высокий уровень доступности доступен в предложениях кэша уровня "Стандартный" и Premium и недоступен в предложении кэша "Базовый". Дополнительные сведения см. в статье "Предложения кэша для azure управляемая служба кэша и высокий уровень доступности для Управляемая служба кэша Azure".

Высокий уровень доступности не используется.

Уведомления

С помощью уведомлений приложение может асинхронно получать уведомления при выполнении различных операций в кэше.

Уведомления доступны для размеров кэша Standard и Premium, но не доступны для размера кэша Basic. Дополнительные сведения см. в статье "Предложения кэша для управляемая служба кэша Azure" и "Уведомления" для управляемая служба кэша Azure.

Не поддерживается.

Политика вытеснения

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

Только наиболее давно использовавшиеся.

Время (мин)

Срок действия элементов кэша по умолчанию равен 10 минутам, но это значение можно поменять. Время истечения срока действия отдельных элементов, добавленных в кэш, также можно указать с помощью перегрузок Add и Put при добавлении элементов в кэш. Параметры Время (мин) и Политика срока действия вместе определяют срок действия элементов.

Срок действия по умолчанию составляет 24 часа и не настраивается. Срок действия отдельных элементов, добавленных в кэш, можно настроить с помощью перегрузок Add и Put при добавлении элементов в кэш.

Политика истечения срока действия

Существует три типа значений параметра Политика окончания срока действия: Никогда, Абсолютный и Sliding (Скользящий). При выборе значения Абсолютный интервал срока действия, заданный значением Время (мин), отсчитывается с момента добавления элементов в кэш. При выборе значения Скользящий интервал сбрасывается при каждом обращении к элементу в кэше. При выборе значения Нет для параметра Время (мин) следует задать значение 0, и срок пребывания элементов в кэше не будет учитываться. По умолчанию используется значение Абсолютный.

Дополнительные сведения см. в статье "Истечение срока действия" и "Вытеснение" для Azure управляемая служба кэша.

По умолчанию используется абсолютная политика срока действия. Интервал отсчитывается от момента добавления элемента в кэш.

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

  • Для Expiry Policy (Политика срока действия) задайте значение Absolute (Абсолютный).

  • Для Time (min) (Время (мин)) задайте значение 1 440.

  • Для Notifications (Уведомления) задайте значение Disabled (Отключено) (этот параметр доступен для настройки только при использовании размера кэша Standard и Premium; для Basic этот параметр всегда отключен).

  • Для параметра "Высокий уровень доступности" установлено значение "Отключено" (можно настроить для предложений кэша уровня "Стандартный" и Premium, которые всегда отключены для предложения кэша "Базовый")

  • Для Eviction (Вытеснение) задайте значение Enabled (Включено).

Настройка клиентов кэша.

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

  • Веб-сайты Azure

  • Веб-роль и рабочая роль облачных служб Azure.

  • Виртуальные машины Azure

Чтобы настроить клиенты кэша, для каждого из них выполните приведенные ниже действия.

  • Удаление конфигурации общего кэша

  • Настройка клиента кэша с помощью пакета NuGet для Caching

Удаление конфигурации общего кэша

Перед настройкой клиентских приложений для управляемая служба кэша необходимо удалить существующие общий кэш конфигурации и ссылки на сборки. Если общий кэш был настроен с помощью пакета общий кэш NuGet, то конфигурацию можно удалить, удалив пакет общий кэш NuGet; в противном случае его необходимо удалить вручную.

  • Удаление пакета NuGet для общего кэша

  • Удаление конфигурации Shared Caching вручную

Удаление пакета NuGet для общего кэша

Чтобы удалить пакет общий кэш NuGet, щелкните правой кнопкой мыши клиентский проект в Обозреватель решений и выберите пункт "Управление пакетами NuGet". Выберите узел Установленные пакеты и введите текст Кэш в поле Поиск установленных пакетов. Выберите пункт Общий кэш Azure, затем последовательно нажмите кнопки Удалить и Закрыть.

Uninstall Shared Caching NuGet Package

Примечание

Если в списке нет пакета общий кэш Microsoft Azure NuGet, нажмите кнопку "Закрыть" и выполните действия, описанные в разделе "Вручную удалить конфигурацию общий кэш".

При удалении пакета общий кэш NuGet удаляются сборки общий кэш и записи общий кэш в app.config клиентском приложении.web.config Так как при удалении пакета NuGet некоторые настроенные пользователем параметры могут быть не удалены, откройте файл web.config или app.config и убедитесь, что следующие элементы полностью удалены.

  • Убедитесь, что запись dataCacheClients удалена из элемента configSections. Не удаляйте весь элемент configSections. Просто удалите запись dataCacheClients, если она есть.

    <configSections>
      <!-- Existing sections omitted for clarity. -->
      <section name="dataCacheClients" type="Microsoft.ApplicationServer.Caching.DataCacheClientsSection, Microsoft.ApplicationServer.Caching.Core" allowLocation="true" allowDefinition="Everywhere" />
    </configSections>
    
  • Убедитесь, что раздел dataCacheClients удален. Раздел dataCacheClients будет похож на следующий пример.

    <dataCacheClients>
      <dataCacheClient name="default">
        <hosts>
          <host name="MyCacheNamespace.cache.windows.net" cachePort="22233" />
        </hosts>
    
        <securityProperties mode="Message">
          <messageSecurity 
            authorizationInfo="Your authorization token will be here.">
          </messageSecurity>
        </securityProperties>
      </dataCacheClient>
    </dataCacheClients>
    

После удаления конфигурации общий кэш можно настроить клиент кэша, как описано в следующем разделе "Настройка клиента кэша" с помощью раздела "Кэширование NuGet пакет".

Удаление конфигурации Shared Caching вручную

Чтобы вручную удалить конфигурацию общий кэш, необходимо удалить ссылки на сборки общий кэш и конфигурацию общий кэш.app.configweb.config

Чтобы удалить ссылки на сборки общий кэш, выберите проект клиента кэша в Обозреватель решений и разверните папку "Ссылки". Для каждой сборки в приведенном списке выполните следующее действие: в обозревателе решений, в папке Ссылки, щелкните правой кнопкой мыши ссылку и выберите пункт Удалить. Если клиентом является веб-проект, также удалите Microsoft.Web.DistributedCache.

  • Microsoft.ApplicationServer.Caching.Client

  • Microsoft.ApplicationServer.Caching.Core

  • Microsoft.WindowsFabric.Common

  • Microsoft.WindowsFabric.Data.Common

Чтобы удалить конфигурацию общий кэш, откройте web.config или app.config проект клиента кэша и удалите следующие два элемента.

  • Удалите запись dataCacheClients из элемента configSections. Не удаляйте весь элемент configSections. Просто удалите запись dataCacheClients, если она есть.

    <configSections>
      <!-- Existing sections omitted for clarity. -->
      <section name="dataCacheClients" type="Microsoft.ApplicationServer.Caching.DataCacheClientsSection, Microsoft.ApplicationServer.Caching.Core" allowLocation="true" allowDefinition="Everywhere" />
    </configSections>
    
  • Удалите раздел dataCacheClients, который будет таким же, как в следующем примере.

    <dataCacheClients>
      <dataCacheClient name="default">
        <hosts>
          <host name="MyCacheNamespace.cache.windows.net" cachePort="22233" />
        </hosts>
    
        <securityProperties mode="Message">
          <messageSecurity 
            authorizationInfo="Your authorization token will be here.">
          </messageSecurity>
        </securityProperties>
      </dataCacheClient>
    </dataCacheClients>
    

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

Настройка клиента кэша с помощью пакета NuGet для Caching

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

Важно!

Перед настройкой клиента кэша с помощью пакета управляемая служба кэша NuGet убедитесь, что конфигурация общий кэш полностью удалена из web.config клиентского проекта или app.config из него, как описано в предыдущем разделе.

Важно!

Для выполнения этих действий требуется последняя версия 2.6.40627.9000 диспетчера пакетов NuGet или более поздняя версия. Чтобы установить последнюю версию NuGet диспетчер пакетов, см. NuGet диспетчер пакетов.

Чтобы использовать пакет управляемая служба кэша NuGet, щелкните правой кнопкой мыши клиентский проект в Обозреватель решений и выберите пункт "Управление пакетами NuGet".

Выберите пункт Azure Caching, нажмите кнопку Установить и кнопку Принимаю. После установки пакета в проект клиента нажмите кнопку Закрыть, чтобы закрыть окно Управление пакетами NuGet.

Примечание

Если пункт Azure Caching отсутствует в списке, введите WindowsAzure.Caching в текстовом поле Поиск в сети.

Windows Azure Cache NuGet Package

Когда пакет управляемая служба кэша NuGet устанавливается в клиентский проект, он добавляет необходимые ссылки на конфигурацию и сборку, чтобы клиентское приложение получите доступ к кэшу.

В файл web.config или app.config проекта клиента добавляется несколько элементов.

  1. В configSections добавляются разделы dataCacheClients и cacheDiagnostics.

    <!-- Non-cache sections omitted for space -->
      <configSections>
        <section name="dataCacheClients" 
            type="Microsoft.ApplicationServer.Caching.DataCacheClientsSection, Microsoft.ApplicationServer.Caching.Core" 
            allowLocation="true" 
            allowDefinition="Everywhere" />
    
        <section name="cacheDiagnostics" 
            type="Microsoft.ApplicationServer.Caching.AzureCommon.DiagnosticsConfigurationSection, Microsoft.ApplicationServer.Caching.AzureCommon" 
            allowLocation="true" 
            allowDefinition="Everywhere" />
      </configSections>
    
  2. Раздел dataCacheClients добавляется в configuration.

    <!-- Non-cache sections omitted for space -->
      <dataCacheClients>
        <dataCacheClient name="default">
          <!--To use the in-role flavor of Azure Caching, set identifier to be the cache cluster role name -->
          <!--To use the Azure Caching Service, set identifier to be the endpoint of the cache cluster -->
          <autoDiscover
            isEnabled="true" 
            identifier="[Cache role name or Service Endpoint]" />
          <!--<localCache isEnabled="true" sync="TimeoutBased" objectCount="100000" ttlValue="300" />-->
          <!--Use this section to specify security settings for connecting to your cache. 
              This section is not required if your cache is hosted on a role that is a part 
              of your cloud service. -->
          <!--<securityProperties mode="Message" sslEnabled="false">
            <messageSecurity authorizationInfo="[Authentication Key]" />
          </securityProperties>-->
        </dataCacheClient>
      </dataCacheClients>
    

    Замените [имя роли кэша или конечная точка службы] URL-адресом конечной точки, отображаемым на панели мониторинга кэша на портале управления.

    Endpoint URL for Windows Azure Cache Service
    В этом примере используется кэш applicationcache и URL-адрес конечной точки applicationcache.cache.windows.net.

    <autoDiscover isEnabled="true" identifier="applicationcache.cache.windows.net" />
    

    Раскомментируйте раздел securityProperties и замените [ключ проверки подлинности] ключом проверки подлинности.

    <!--Use this section to specify security settings for connecting to your cache. 
        This section is not required if your cache is hosted on a role that is a part 
        of your cloud service. -->
    <!--<securityProperties mode="Message" sslEnabled="false">
      <messageSecurity authorizationInfo="[Authentication Key]" />
    </securityProperties>-->
    

    Ключ проверки подлинности можно найти на портале управления. Для этого необходимо щелкнуть Manage Keys (Управление ключами) на панели мониторинга кэша.

    Manage Access Keys for Windows Azure Cache Service

    Предупреждение

    Эти параметры следует настраивать правильно, иначе клиенты не смогут получить доступ к кэшу.

Для проектов облачных служб пакет управляемая служба кэша NuGet также добавляет параметр ClientDiagnosticLevel в ConfigurationSettings роль клиента кэша.ServiceConfiguration.cscfg В следующем примере показан WebRole1 раздел из ServiceConfiguration.cscfg файла с ClientDiagnosticLevel 1, который является значением clientDiagnosticLevel по умолчанию.

<Role name="WebRole1">
  <Instances count="1" />
  <ConfigurationSettings>
    <!-- Other settings omitted for space... -->
    <Setting name="Microsoft.WindowsAzure.Plugins.Caching.ClientDiagnosticLevel" value="1" />
  </ConfigurationSettings>
</Role>

Примечание

Дополнительные сведения об уровнях диагностики кэша см. в статье "Сведения о ClientDiagnosticLevel для Azure управляемая служба кэша".

Помимо добавления необходимой конфигурации пакет управляемая служба кэша NuGet также добавляет следующие ссылки на сборки.

  • Microsoft.ApplicationServer.Caching.Client.dll

  • Microsoft.ApplicationServer.Caching.Core.dll

  • Microsoft.ApplicationServer.Caching.AzureCommon.dll

  • Microsoft.ApplicationServer.Caching.AzureClientHelper.dll

  • Microsoft.WindowsFabric.Common.dll

  • Microsoft.WindowsFabric.Data.Common.dll

Если проект — это веб-проект, также добавляется следующая ссылка на сборку.

  • Microsoft.Web.DistributedCache.dll

Примечание

управляемая служба кэша и общий кэш совместно используют один и тот же API, и хотя имена сборок одинаковы, сами сборки отличаются и находятся в разных расположениях. Пакет управляемая служба кэша NuGet удалит ссылки на сборки общий кэш и добавит правильные управляемая служба кэша ссылки на сборки. Сборки управляемая служба кэша находятся в папкеC:\Program Files\Microsoft SDKs\Azure\.NET SDK[SDK Version]\ref\Caching.

Перенос кэша состояний сеансов и кэша вывода ASP.NET

После переноса веб-проектов ASP.NET с общий кэш Microsoft Azure на управляемая служба кэша, как описано в разделе "Настройка клиентов кэша", требуется только минимальные изменения, чтобы включить сохранение состояния сеанса ASP.NET или кэширования выходных данных страниц в кэше. Чтобы хранить состояние сеансов ASP.NET в кэше, добавьте следующий раздел в system.web в web.config.

<sessionState mode="Custom" customProvider="AppFabricCacheSessionStoreProvider">
  <providers>
    <add name="AppFabricCacheSessionStoreProvider" type="Microsoft.Web.DistributedCache.DistributedCacheSessionStateStoreProvider, Microsoft.Web.DistributedCache" cacheName="default" useBlobMode="true" dataCacheClientName="default" />
  </providers>
</sessionState>

Примечание

Если веб-роль ASP.NET уже настроена для использования поставщика состояний сеансов для кэширования, этот раздел уже присутствует и никаких изменений не требуется.

Обновите cacheName, чтобы указать кэш, в котором хранится состояние сеанса. Используйте default для указания кэша по умолчанию.

Чтобы хранить вывод страниц в кэше, добавьте следующий раздел в system.web.

<caching>
  <outputCache defaultProvider="DistributedCache">
    <providers>
      <add name="DistributedCache" type="Microsoft.Web.DistributedCache.DistributedCacheOutputCacheProvider, Microsoft.Web.DistributedCache" cacheName="default" dataCacheClientName="default" />
    </providers>
  </outputCache>
</caching>

Примечание

Если веб-роль ASP.NET уже настроена для использования поставщика кэша вывода для кэширования, этот раздел уже присутствует, и изменения не требуются.

Обновите cacheName, чтобы указать кэш, в котором хранится состояние сеанса. Используйте default для указания кэша по умолчанию.

Добавьте директиву OutputCache на каждую страницу, вывод которой должен кэшироваться.

<%@ OutputCache Duration="60" VaryByParam="*" %>

В этом примере данные кэшированной страницы хранятся в кэше 60 секунд, и для каждой комбинации параметров кэшируются разные версии страницы. Дополнительные сведения о доступных параметрах см. в директиве OutputCache.

См. также:

Основные понятия

Предложения кэша для управляемой службы кэша Azure
Планирование емкости для управляемой службы кэша Azure
Поставщик состояния сеансов для управляемой службы кэша Azure
Поставщик кэша вывода страниц для управляемой службы Azure

Другие ресурсы

Управляемая служба кэша Azure