Cache local 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?
O cache local é um recurso do cache Microsoft Azure que melhora o desempenho reduzindo as solicitações de rede para o serviço de cache. O cache armazena objetos em forma serializada em um cache distribuído na memória. Quando um aplicativo solicita um objeto do cache, o objeto serializado é enviado para o aplicativo solicitante através da rede. O aplicativo em seguida desserializa o objeto para seu uso. Para acelerar o processo de recuperação de um objeto, ative o cache local.
Visão geral do cache local
Quando o cache local é ativado, o cliente de cache armazena uma referência ao objeto localmente. Essa referência local mantém o objeto ativo na memória do aplicativo cliente. Quando o aplicativo solicita o objeto, o cliente de cache verifica se o objeto reside no cache local. Em caso afirmativo, a referência ao objeto é retornada imediatamente, sem contactar o serviço de cache. Se o objeto não existe, ele é recuperado do serviço de cache. Em seguida, o cliente de cache desserializa o objeto e armazena a referência a esse objeto recém-recuperado no cache local. O aplicativo cliente usa esse mesmo objeto.
O tempo de vida de um objeto no cache local depende do número máximo de objetos no cache local e da política de invalidação. Há dois tipos de invalidação para cache local: invalidação baseada em tempo limite e invalidação baseada em notificação. Para obter mais informações, consulte Expiração e Remoção para Serviço de Cache Gerenciado do Azure.
Definições de configuração
O cache local pode ser ativado e configurado usando o arquivo de configuração do aplicativo ou o arquivo web.config. Você pode adicionar um elemento localCache à seção dataCacheClient . A tabela a seguir lista os atributos do elemento localCache .
Atributo | Descrição |
---|---|
Isenabled |
Defina como |
Sincronização |
Determina como o cache local é invalidado. Os valores possíveis são |
objectCount |
O número máximo de objetos a serem armazenados no cache local. O padrão é 10000. |
ttlValue |
O número de segundos de permanência dos objetos no cache local. O padrão é 300 segundos. |
Um valor de sincronização de TimeoutBased
objetos armazenados em cache localmente até que o limite ttlValue seja atingido. Um valor de NotificationBased
usa notificações além do mecanismo baseado em tempo limite. Para usar notificações para invalidação, as notificações devem primeiro ser habilitadas para o cache seguindo as etapas em Habilitar Notificações de Cache. O intervalo de consulta de verificações de notificações para determinar se os itens do cache local foram alterados. Um intervalo de sondagem efetivo para notificações deve ser menor do que a configuração ttlValue para ser eficaz. Um elemento de adição, clientNotification, pode ser usado para configurar o intervalo de sondagem para notificações definindo o atributo pollInterval como o número de segundo. O padrão é 300 segundos.
Observação
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.
Exemplos
O exemplo a seguir mostra uma seção dataCacheClient que usa o cache local com expiração local baseada em tempo limite de cinco minutos (300 segundos).
<dataCacheClient name="default">
<!-- Other configuration settings for cache omitted -->
<localCache isEnabled="true" sync="TimeoutBased" objectCount="100000" ttlValue="300" />
</dataCacheClient>
O exemplo a seguir mostra a seção dataCacheClient anterior alterada para usar notificações para fornecer sincronização adicional sondando a cada um minuto (60 segundos).
<dataCacheClient name="default">
<!-- Other configuration settings for cache omitted -->
<localCache isEnabled="true" sync="NotificationBased" objectCount="100000" ttlValue="300" />
<clientNotification pollInterval="60" />
</dataCacheClient>
Para baixar um exemplo que usa o cache local, consulte a API de Cache e o Exemplo de Desempenho.