Share via


Clientes de cache e cache local (Cache do Windows Server AppFabric)

Ao usar os recursos de cache do Windows Server AppFabric, seu aplicativo usará o objeto DataCache para armazenar dados no cache. Esse objeto é chamado de cliente de cache. Para criar um cliente de cache que use o cache padrão, use o método GetDefaultCache. Para criar um cliente de cache que use um cache nomeado, use o método GetCache.

Observação

Por motivos de desempenho, recomendamos que você minimize o número de objetos do DataCacheFactory criados pelo seu aplicativo habilitado pelo cache. Armazene o objeto do DataCacheFactory em uma variável disponível para todas as partes do aplicativo que usem clientes de cache.

Considerações sobre segurança

Recomendamos que você proteja todos os arquivos de configuração do aplicativo com base em XML usados para especificar o cliente de cache. Os nomes de computador dos hosts de cache são especificados nesse arquivo. No entanto, para outro cliente acessar realmente o cluster de cache, eles não exigirão permissões para acessar o cluster de cache.

Cache local

O servidor armazena objetos no formulário serializado no cache. Quando um cliente de cache solicita um objeto do cache, o servidor o envia para o cliente na rede. Então, o cliente de cache cancela a série do objeto para uso pelo aplicativo cliente. Para acelerar o processo de recuperação de um objeto, habilite o cache local. Para obter mais informações sobre como habilitar o cache local, consulte Habilitar cache local do Windows Server AppFabric ou Habilitar cache local (XML) do Windows Server AppFabric.

Quando o cache local é habilitado, o cliente de cache armazena uma referência para o objeto localmente. Isso mantém o objeto ativo na memória do aplicativo cliente. Quando o aplicativo solicita o objeto, o cliente de cache primeiro verifica se o objeto reside no cache local. Se residir, a referência ao objeto será retornada imediatamente sem entrar em contato com o servidor. Se não existir, o objeto será recuperado do servidor. A seguir, o cliente de cache retira a série do objeto e armazena a referência para esse objeto recém-recuperado no cache local. O aplicativo cliente usa esse mesmo objeto.

A vida útil de um objeto no cache local depende de diversos fatores, como o número máximo de objetos no cache local e a diretiva de invalidação. Há dois tipos de invalidação para o cache local: Invalidação com base no tempo limite e invalidação com base em notificações. Para obter mais informações, consulte Expiração e remoção (cache do Windows Server AppFabric).

Dica

Depois que os objetos são armazenados no cache local, seu aplicativo continua a usar esses objetos até que sejam invalidados, independentemente do fato de esses objetos serem atualizados por outro cliente no cluster de cache. Por esse motivo, é melhor usar o cache local para dados que não são alterados frequentemente.

Coerência do objeto

Objetos armazenados localmente em cache são armazenados dentro do mesmo espaço de processo que o processo de cliente de cache. Quando um cliente de cache solicita um objeto armazenado em cache local, o cliente recebe uma referência para esse objeto, em vez de uma cópia. Esta é uma consideração importante para aplicativos multi-threaded que podem estar modificando o mesmo objeto armazenado em cache local de vários threads. Esses aplicativos podem usar técnicas padrão de codificação do .NET Framework para sincronizar alterações feitas em objetos de vários threads. Também é possível criar objetos DataCacheFactory separados para cada thread. No entanto, isso deve ser feito de maneira criteriosa, pois a sobrecarga na criação de alocadores de cache pode reduzir os benefícios.

Consulte também

Conceitos

Diagrama de arquitetura física de cache do Windows Server AppFabric
Diagrama de arquitetura lógica de cache do Windows Server AppFabric
Expiração e remoção (cache do Windows Server AppFabric)
Habilitar cache local do Windows Server AppFabric
Habilitar cache local (XML) do Windows Server AppFabric
Desenvolvendo um cliente de cache (cache do Windows Server AppFabric)

  2011-12-05