Migrar do cache compartilhado para o serviço de cache gerenciado do Azure
Importante
A Microsoft recomenda que todos os novos desenvolvimentos usem o Cache Redis do Azure. Para obter documentação e diretrizes atuais sobre como escolher uma oferta do Cache do Azure, confira qual oferta do Cache do Azure é certa para mim?
A migração de seus aplicativos que usam Cache Compartilhado do Microsoft Azure para Serviço de Cache Gerenciado pode ser realizada com alterações mínimas em seu aplicativo. Como Serviço de Cache Gerenciado usa a maior parte da mesma API que Cache Compartilhado, o código existente que usa Cache Compartilhado para acessar um cache pode ser reutilizado com Serviço de Cache Gerenciado. Este tópico mostra como fazer as alterações necessárias de configuração e aplicativo para migrar seus aplicativos Cache Compartilhado para usar Serviço de Cache Gerenciado.
Observação
O Cache Compartilhado do Azure foi desativado em setembro de 2014. É recomendável migrar para o Cache Redis do Azure, mas se você quiser mover seu aplicativo sem alterações de código, poderá migrar para Serviço de Cache Gerenciado. Este tópico aborda a migração para Serviço de Cache Gerenciado; para obter diretrizes sobre como migrar para o Cache Redis do Azure, consulte Migrar de Cache Compartilhado para o Cache Redis do Azure (versão prévia).
Etapas da migração
As seções a seguir descrevem as etapas necessárias para migrar um aplicativo Cache Compartilhado do Microsoft Azure para usar Serviço de Cache Gerenciado.
Escolher uma oferta de Cache
Criar um Cache
Configurar o cache
Configurar os clientes de Cache
Remover a configuração de cache compartilhado
Configurar um cliente de cache usando o pacote NuGet de cache
Migrar o cache de sessão ASP.NET e saída de página
Escolher uma oferta de Cache
Serviço de Cache Gerenciado está disponível nas três ofertas a seguir.
Básica - Cache em tamanhos de 128 MB a 1 GB em incrementos de 128 MB, com um cache nomeado padrão
Standard - Cache em tamanhos de 1 GB a 10 GB, em incrementos de 1 GB, com suporte a notificações, alta disponibilidade e até dez caches nomeados
Premium - Cache em tamanhos de 5 GB a 150 GB em incrementos de 5 GB, com suporte para notificações, alta disponibilidade e até dez caches nomeados
Observação
Essas ofertas diferem em termos de preço e recursos. Para obter mais informações, consulte perguntas frequentes sobre preços do serviço de cache e ofertas de cache para Serviço de Cache Gerenciado do Azure. Detalhes adicionais também são fornecidos na seção Configurar o Cache a seguir neste guia de migração.
Todos os recursos de cache de Cache Compartilhado estão disponíveis em todas as três ofertas Serviço de Cache Gerenciado, portanto, um ponto de partida para a migração é escolher a oferta de cache Serviço de Cache Gerenciado que corresponde ao tamanho do seu Cache Compartilhado conta. Depois de implantar o aplicativo, você pode monitorar o desempenho do cache e escalar verticalmente ou para baixo, dependendo dos requisitos do aplicativo. Para obter mais informações sobre como monitorar o desempenho e o dimensionamento, consulte Monitorar Serviço de Cache Gerenciado do Azure e dimensionar um cache para Serviço de Cache Gerenciado do Azure.
Criar um Cache
As instâncias de cache em Serviço de Cache Gerenciado são criadas usando scripts do PowerShell.
Importante
Depois que uma instância Serviço de Cache Gerenciado é criada usando os cmdlets do PowerShell, ela pode ser exibida e configurada no Portal de Gerenciamento do Azure.
Para criar uma instância Serviço de Cache Gerenciado
Abra uma janela de comando do PowerShell do Azure.
Observação
Para obter instruções sobre como instalar e usar o Azure PowerShell, consulte Como instalar e configurar o Azure PowerShell.
Invoque o cmdlet
Add-AzureAccount
e insira o endereço de e-mail e senha associados à sua conta.Observação
Se você tiver configurado o PowerShell do Azure com um certificado para sua conta, então você pode pular esta etapa. Para obter mais informações sobre conectar o Azure PowerShell com sua conta do Azure, consultar Como instalar e configurar o Azure PowerShell.
Invoque o cmdlet
New-AzureManagedCache
e especifique o nome, região, oferta de cache e tamanho do cache. No exemplo a seguir, um cache Basic de 128 MB é criado com o nomecontosocache
na região geográficaSouth Central US
.New-AzureManagedCache -Name contosocache -Location "South Central US" -Sku Basic -Memory 128MB
Observação
Para uma lista completa de parâmetros e valores que podem ser usados ao criar um cache, consulte a documentação do cmdlet New-AzureManagedCache .
Assim que o cmdlet do PowerShell for invocado, ele pode demorar alguns minutos para que o cache seja criado. Depois que o cache tiver sido criado, o novo cache terá um status em execução e estará pronto para uso com configurações padrão, podendo ser exibido e configurado no Portal de Gerenciamento do Azure.
Você pode monitorar o progresso da criação na janela do Azure PowerShell. Quando o cache estiver pronto para uso, o cmdlet
New-AzureManagedCache
exibirá as informações do cache, como é mostrado no exemplo a seguir.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:\>
Configurar o cache
Serviço de Cache Gerenciado dá suporte a caches nomeados, que oferecem flexibilidade para configurar diferentes opções de cache para diferentes conjuntos de dados. Cada cache tem um cache nomeado padrão e, nas ofertas de cache Standard e Premium, até nove caches nomeados adicionais podem ser configurados. Cada cache nomeado tem suas próprias configurações individuais, como alta disponibilidade, notificações e políticas personalizadas de remoção e expiração. As configurações de caches nomeados são definidas no Portal de Gerenciamento, na guia Configurar do Cache.
A tabela a seguir lista as diferenças nas configurações de cache entre Serviço de Cache Gerenciado e Cache Compartilhado.
Recurso | Suporte Serviço de Cache Gerenciado | Suporte Cache Compartilhado |
---|---|---|
Nome |
Um cache padrão é configurado e, nas ofertas de cache Standard e Premium, até nove caches nomeados adicionais podem ser configurados, se desejado. |
Somente cache padrão. |
Alta disponibilidade |
Fornece alta disponibilidade para os itens no cache. Se os itens são perdidos devido a uma falha, cópias de backup dos itens no cache ainda ficam disponíveis. A alta disponibilidade está disponível nas ofertas de cache Standard e Premium e não está disponível na oferta de cache Básico. Para obter mais informações, consulte Ofertas de Cache para Serviço de Cache Gerenciado do Azure e Alta Disponibilidade para Serviço de Cache Gerenciado do Azure. |
Sem alta disponibilidade. |
Notificações |
As notificações permitem que seu aplicativo receba notificações assíncronas quando várias operações de cache ocorrem no cache. As notificações estão disponíveis nas ofertas de cache Standard e Premium, mas não na oferta de cache Basic. Para obter mais informações, consulte Ofertas de Cache para Serviço de Cache Gerenciado do Azure e Notificações para Serviço de Cache Gerenciado do Azure. |
Sem suporte. |
Política de Remoção |
As opções são Ativado, que usa um algoritmo LRU (menos utilizado recentemente) para determinar quais itens devem ser removidos, ou Desativado. O padrão é Ativado. |
Somente LRU. |
Tempo (min) |
A expiração padrão para itens no cache é de 10 minutos, mas é configurável. O tempo de expiração para itens individuais adicionados ao cache também pode ser especificado usando sobrecargas de Adicionar e Colocar quando os itens são adicionados ao cache. Tempo (min.) opera em conjunção com Política de Expiração para determinar quando os itens expirarão. |
A expiração padrão é de 24 horas e não é configurável. O tempo de expiração para itens individuais adicionados ao cache pode ser configurado usando sobrecargas de Adicionar e Colocar quando os itens são adicionados ao cache. |
Política de Expiração |
Existem três tipos de Política de Expiração: Nunca, Absoluto e Deslizante. Quando Absoluta é especificado, o intervalo de expiração especificado por Tempo (min) começa quando um item é adicionado ao cache. Quando Deslizante é especificado, o intervalo é redefinido cada vez que um item é acessado no cache. Quando Nunca é especificado, Tempo (min) deve ser definido como 0 e os itens não expiram. O padrão é Absoluta. Para obter mais informações, consulte Expiração e Remoção para Serviço de Cache Gerenciado do Azure. |
A política de expiração é absoluta. O intervalo de expiração começa quando itens são adicionados ao cache. |
Para definir Serviço de Cache Gerenciado configurações para corresponder mais de perto às configurações de Cache Compartilhado padrão, use as configurações a seguir.
Política de Expiração definida como Absoluta
Tempo (min) definido como 1440
Notificações definidas como Desativadas (configurável para as ofertas de cache Standard e Premium, sempre desativadas para a oferta de cache Basic)
Conjunto de alta disponibilidade para desabilitado (configurável para as ofertas de cache Standard e Premium, sempre desabilitada para a oferta de cache Básico)
Remoção configurada como Ativada
Configurar os clientes de Cache
Tendo criado e configurado o cache, a próxima etapa é adicionar a configuração e as referências necessárias para que os clientes de cache possam acessá-lo. Serviço de Cache Gerenciado dá suporte aos seguintes clientes.
Site do Azure
Função web e função de trabalho dos serviços de nuvem do Azure
Máquinas Virtuais do Azure
Para configurar os clientes de cache, execute as etapas a seguir com cada cliente.
Remover a configuração de cache compartilhado
Configurar um cliente de cache usando o pacote NuGet de cache
Remover a configuração de cache compartilhado
Antes que os aplicativos cliente possam ser configurados para Serviço de Cache Gerenciado, as referências de configuração e assembly de Cache Compartilhado existentes devem ser removidas. Se Cache Compartilhado foi configurado usando o pacote Cache Compartilhado NuGet, a configuração poderá ser removida desinstalando o pacote Cache Compartilhado NuGet; caso contrário, ele deverá ser removido manualmente.
Desinstalar o pacote NuGet de cache compartilhado
Remover manualmente a configuração de cache compartilhado
Desinstalar o pacote NuGet de cache compartilhado
Para desinstalar o pacote Cache Compartilhado NuGet, clique com o botão direito do mouse no projeto cliente no Gerenciador de Soluções e escolha Gerenciar pacotes NuGet. Selecione o nó Pacotes instalados e digite Cache na caixa Pesquisar pacotes instalados. Selecione Cache Compartilhado do Azure, clique em Desinstalar e, em seguida, clique em Fechar.
Observação
Se não houver nenhum pacote Cache Compartilhado do Microsoft Azure NuGet na lista, clique em Fechar e siga as etapas em Remover manualmente a configuração de Cache Compartilhado.
Desinstalar o pacote Cache Compartilhado NuGet remove os assemblies Cache Compartilhado e as entradas Cache Compartilhado no app.config
aplicativo cliente ou web.config
no aplicativo cliente. Como algumas configurações personalizadas podem não ser removidas ao desinstalar o pacote NuGet, abra o web.config
ou o app.config
e certifique-se de que os elementos a seguir foram completamente removidos.
Verifique se a entrada
dataCacheClients
é removida do elementoconfigSections
. Não remova todo o elementoconfigSections
; remova apenas a entradadataCacheClients
, se estiver presente.<configSections> <!-- Existing sections omitted for clarity. --> <section name="dataCacheClients" type="Microsoft.ApplicationServer.Caching.DataCacheClientsSection, Microsoft.ApplicationServer.Caching.Core" allowLocation="true" allowDefinition="Everywhere" /> </configSections>
Verifique se a seção
dataCacheClients
é removida. A seçãodataCacheClients
será semelhante ao exemplo a seguir.<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>
Depois que a configuração Cache Compartilhado for removida, você poderá configurar o cliente de cache, conforme descrito na seção Configurar um Cliente de Cache a seguir usando a seção pacote Caching NuGet.
Remover manualmente a configuração de cache compartilhado
Para remover manualmente a configuração Cache Compartilhado, você deve remover as referências de assembly Cache Compartilhado e a configuração de Cache Compartilhado de app.config
ou web.config
.
Para remover as referências do assembly Cache Compartilhado, selecione o projeto cliente de cache no Gerenciador de Soluções e expanda a pasta Referências. Para cada assembly na lista a seguir, clique com o botão direito do mouse na pasta Referências no Gerenciador de Soluções e escolha Remover. Se o cliente for um projeto web, remova também Microsoft.Web.DistributedCache.
Microsoft.ApplicationServer.Caching.Client
Microsoft.ApplicationServer.Caching.Core
Microsoft.WindowsFabric.Common
Microsoft.WindowsFabric.Data.Common
Para remover a configuração de Cache Compartilhado, abra o web.config
projeto do cliente ou app.config
do cache e remova os dois itens a seguir.
Remova a entrada
dataCacheClients
do elementoconfigSections
. Não remova todo o elementoconfigSections
; remova apenas a entradadataCacheClients
, se estiver presente.<configSections> <!-- Existing sections omitted for clarity. --> <section name="dataCacheClients" type="Microsoft.ApplicationServer.Caching.DataCacheClientsSection, Microsoft.ApplicationServer.Caching.Core" allowLocation="true" allowDefinition="Everywhere" /> </configSections>
Remova a seção
dataCacheClients
, que será semelhante à do exemplo a seguir.<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>
Tendo removido esses itens, você poderá seguir as etapas descritas na próxima seção para configurar seu cliente de cache.
Configurar um cliente de cache usando o pacote NuGet de cache
Serviço de Cache Gerenciado fornece um pacote NuGet para adicionar as referências de configuração e assembly necessárias para permitir que os clientes de cache acessem um cache.
Importante
Antes de configurar o cliente de cache usando o pacote Serviço de Cache Gerenciado NuGet, verifique se a configuração Cache Compartilhado é completamente removida do web.config
projeto ou app.config
do cliente, conforme descrito na seção anterior.
Importante
Estas etapas exigem a versão 2.6.40627.9000 ou superior do gerenciador de pacote NuGet. Para instalar o NuGet Gerenciador de Pacotes mais recente, consulte NuGet Gerenciador de Pacotes.
Para usar o pacote Serviço de Cache Gerenciado NuGet, clique com o botão direito do mouse no projeto cliente no Gerenciador de Soluções e escolha Gerenciar pacotes NuGet.
Selecione Cache do Azure, clique em Instalar e, em seguida, clique em Aceito. Depois que o pacote for instalado no projeto cliente, clique em Fechar para fechar a janela Gerenciar Pacotes NuGet.
Observação
Se Cache do Azure não aparecer na lista, digite WindowsAzure.Caching na caixa de texto Pesquisar Online.
Quando o pacote Serviço de Cache Gerenciado NuGet é instalado em um projeto cliente, ele adiciona as referências de configuração e assembly necessárias para que o aplicativo cliente possa acessar o cache.
Vários itens são adicionados ao arquivo web.config
ou app.config
do projeto cliente.
Duas seções são adicionadas ao
configSections
, denominadasdataCacheClients
ecacheDiagnostics
.<!-- 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>
Uma seção
dataCacheClients
é adicionada à seçãoconfiguration
.<!-- 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>
Substitua [Nome da função cache ou ponto de extremidade de serviço] pela URL do ponto de extremidade que é exibida no Painel de Cache no Portal de Gerenciamento.
Neste exemplo, o cache é chamado applicationcache e a URL do ponto de extremidade é applicationcache.cache.windows.net.<autoDiscover isEnabled="true" identifier="applicationcache.cache.windows.net" />
Descompacte a seção securityProperties e substitua [Chave de Autenticação] pela chave de autenticação.
<!--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>-->
A chave de autenticação pode ser encontrada no Portal de Gerenciamento clicando em Gerenciar Chaves no painel de cache.
Aviso
Essas configurações devem ser definidas corretamente ou os clientes não poderão acessar o cache.
Para projetos de serviços de nuvem, o pacote Serviço de Cache Gerenciado NuGet também adiciona uma configuração ClientDiagnosticLevel à ConfigurationSettings
função de cliente de cache em ServiceConfiguration.cscfg
. O exemplo a seguir é a WebRole1
seção de um ServiceConfiguration.cscfg
arquivo com um ClientDiagnosticLevel de 1, que é o ClientDiagnosticLevel padrão.
<Role name="WebRole1">
<Instances count="1" />
<ConfigurationSettings>
<!-- Other settings omitted for space... -->
<Setting name="Microsoft.WindowsAzure.Plugins.Caching.ClientDiagnosticLevel" value="1" />
</ConfigurationSettings>
</Role>
Observação
Para obter mais informações sobre níveis de diagnóstico de cache, consulte Sobre ClientDiagnosticLevel para Serviço de Cache Gerenciado do Azure.
Além de adicionar a configuração necessária, o pacote Serviço de Cache Gerenciado NuGet também adiciona as referências de assembly a seguir.
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
Em um projeto Web, a seguinte referência a assembly também é adicionada.
- Microsoft.Web.DistributedCache.dll
Observação
Serviço de Cache Gerenciado e Cache Compartilhado compartilham a mesma API e, embora os nomes de assembly sejam os mesmos, os próprios assemblies são diferentes e estão em locais diferentes. O pacote Serviço de Cache Gerenciado NuGet removerá as referências de assembly Cache Compartilhado e adicionará as referências corretas de assembly Serviço de Cache Gerenciado. Os assemblies Serviço de Cache Gerenciado estão localizados na C:\Program Files\Microsoft SDKs\Azure\.NET SDK[SDK Version]\ref\Caching
pasta.
Migrar o cache de sessão ASP.NET e saída de página
Depois que seus projetos Web ASP.NET são migrados de Cache Compartilhado do Microsoft Azure para Serviço de Cache Gerenciado conforme descrito em Configurar os Clientes de Cache, apenas alterações mínimas são necessárias para habilitar o armazenamento ASP.NET Estado da Sessão ou a Saída da Página Caching no cache. Para habilitar o armazenamento do estado da sessão ASP.NET no cache, adicione a seguinte seção a system.web
em 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>
Observação
Se sua ASP.NET função Web já estiver configurada para usar o Provedor de Estado de Sessão para cache, essa seção já estará presente e nenhuma alteração será necessária.
Atualize cacheName
para especificar o cache que contém o estado da sessão. Use default
para especificar o cache padrão.
Para habilitar o armazenamento do cache de saída de página no cache, adicione a seguinte seção a 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>
Observação
Se sua ASP.NET função Web já estiver configurada para usar o Provedor de Cache de Saída para cache, essa seção já estará presente e nenhuma alteração será necessária.
Atualize cacheName
para especificar o cache que contém o estado da sessão. Use default
para especificar o cache padrão.
Adicione uma diretiva OutputCache
a cada página cuja saída você deseja armazenar no cache.
<%@ OutputCache Duration="60" VaryByParam="*" %>
Neste exemplo, os dados da página armazenados em cache permanecem no cache por 60 segundos e uma versão diferente da página é armazenada em cache para cada combinação de parâmetros. Para obter mais informações sobre as opções disponíveis, consulte a Diretiva OutputCache.
Consulte Também
Conceitos
Ofertas de cache para o serviço de cache gerenciado do Azure
Planejamento de capacidade para o serviço de cache gerenciado do Azure
Provedor de estado da sessão para o serviço de cache gerenciado do Azure
Provedor de cache de saída de página para o serviço de cache gerenciado do Azure