Muitos ASP.NET os aplicativos hoje são de alto tráfego e são usados por dezenas de milhares de usuários. Esses aplicativos enfrentam problemas de desempenho porque o acesso ao banco de dados é lento, especialmente quando o tráfego de rede é alto. Essa latência agora está se tornando inacessível, pois milhares de usuários estão acessando esses aplicativos.
Para resolver essa restrição de desempenho, ASP.NET e ASP.NET Core fornece um mecanismo de cache integrado chamado “ASP.NET Cache” que armazena dados de aplicativos na memória para acesso mais rápido e reduz viagens ao banco de dados. Assim, melhorando o desempenho do seu aplicativo.
NCache Adicionar ao carrinho Desempenho ASP.NET .NET Core
O cache interno do ASP.NET tem limitações
No entanto, há um problema de que o cache ASP.NET interno é um cache em processo autônomo que reside no processo de trabalho do aplicativo ASP.NET. Como resultado, é útil apenas para um ambiente de servidor único.
Aqui estão algumas das limitações do ASP.NET Cache:
- Várias instâncias de cache não sincronizadas: Como um cache ASP.NET faz parte do processo do aplicativo ASP.NET, ele não permite a sincronização de instâncias de cache executadas em vários aplicativos ASP.NET. Isso causa problemas de integridade de dados.
- Reciclagem do processo do NET Worker: Como o cache do ASP.NET está em processo, todos os dados armazenados em cache são perdidos quando os processos de trabalho do ASP.NET são reciclados. O cache precisa ser recarregado de uma fonte de dados, causando um grande impacto no desempenho.
- Tamanho limitado da memória do processo de trabalho: O cache ASP.NET faz parte do processo de trabalho do aplicativo ASP.NET. Portanto, há memória limitada desse processo para uso em cache.
Solução: Cache ASP.NET com Cache Distribuído
Para combater essas limitações do cache ASP.NET, você precisa de um cache distribuído como NCache que vive em seu próprio processo em vários servidores e também fornece um mecanismo para sincronizar caches em um web farm.
Veja como um cache distribuído, como NCache resolve seus problemas com o cache do ASP.NET:
- Um cache distribuído sincroniza todas as instâncias de cache criadas por várias instâncias de aplicativos ASP.NET, o que resolve seu problema de integridade de dados.
- Como é um cache out-proc (fora do processo), ele pode ser compartilhado por vários servidores e processos de trabalho.
- A alta escalabilidade permite que você use a quantidade de memória que desejar, pois não há limitação de processo. Também permite que você tenha quantos servidores de cache desejar.
- Você pode dimensionar seus servidores de cache de aplicativos ASP.NET em tempo real.
- NCache também possui um sistema altamente inteligente de replicação de dados sem problemas de desempenho. O recurso de replicação de dados eficiente mantém você à vontade sem problemas de perda de dados.
NCache Adicionar ao carrinho Desempenho ASP.NET ASP.NET Core Performance
Como usar o cache ASP.NET com cache distribuído?
NCache fornece diferentes tipos de cache que você pode usar para obter seu ASP.NET aplicativos em execução com cache.
Cache de dados do aplicativo
Os dados do aplicativo que precisam ser buscados com frequência de sua fonte de dados podem ser armazenados em cache em seu aplicativo ASP.NET usando o cache de dados para reduzir o tempo de resposta para esses dados acessados com frequência. Isso inclui seus dados de objetos personalizados, como objetos da classe Product, conforme mostrado no exemplo abaixo. O objeto Product é obtido do banco de dados pela primeira vez e, em seguida, adicionado ao cache e obtido do cache na próxima vez que os dados forem acessados.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
using Alachisoft.NCache.Client; ... ICache _cache = CacheManager.GetCache("demoCache"); string key = "Product:1001"; // Search for key in cache var result = _cache.Get<string>(key); // If it doesn't exist, fetch from DB and add to cache if (result == null) { var product = LoadProductFromDB(1001); CacheItem item = new CacheItem(product); _cache.Add(key, item); } |
NCache Adicionar ao carrinho Cache ASP.NET ASP.NET Core Sessões
Cache de estado de sessão ASP.NET
Você pode usar cache de sessão para armazenar dados relevantes do usuário para seus aplicativos ASP.NET. Os dados da sessão pertencem às interações do usuário em seu aplicativo ASP.NET. Por exemplo, uma empresa de comércio eletrônico não pode perder sessões caso o cache ASP.NET fique inativo. Assim, você pode conectar NCache ao seu aplicativo ASP.NET para evitar a perda de dados.
Para utilizar o NCache para armazenamento em cache ASP.NET, você não precisa de nenhum esforço de programação. Basta adicionar a seguinte configuração para web.config da sua aplicação:
1 2 3 4 5 6 7 8 9 |
... <assemblies> <add assembly ="Alachisoft.NCache.SessionStoreProvider, Version=x.x.x.x, Culture=neutral, PublicKeyToken=CFF5926ED6A53769"/> </assemblies> ... |
Modifique a configuração do estado da sessão para habilitar o cache do estado da sessão no ASP.NET. Dentro web.config adicione a seguinte seção:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
<configuration> ... <sessionState cookieless="false" regenerateExpiredSessionId="true" mode="Custom" customProvider="NCacheSessionProvider" timeout="20"> <providers> <add name="NCacheSessionProvider" type="Alachisoft.NCache.Web.SessionState.NSessionStoreProvider" cacheName="demoCache" sessionAppId="NCacheApp" exceptionsEnabled="true" writeExceptionsToEventLog="false" enableLogs="false" enableSessionLocking="true" sessionLockingRetry="-1" emptySessionWhenLocked="false" /> </providers> </sessionState> ... </configuration> ... |
NCache Adicionar ao carrinho Cache de sessão ASP.NET Documentos de cache de sessão ASP.NET
ASP.NET View State Cache
ASP.NET View State fornece mecanismo de gerenciamento de estado do lado do cliente. Ele ajuda a preservar a página e os valores de controle entre viagens de ida e volta completas para solicitações de clientes. Você pode armazenar ASP.NET view state no servidor da Web e envie um ID exclusivo de volta ao navegador. Este ID encontrará o ASP.NET view state na cache.
Alcançar ASP.NET view state caching em NCache é muito fácil. Aqui está uma parte da configuração que precisa ser adicionada ao web.config do seu aplicativo ASP.NET:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
... <ncContentOptimization> <settings viewstateThreshold="12" enableViewstateCaching="true" enableTrace="false" groupedViewStateWithSessions="false" maxViewStatesPerSession="5" > <cacheSettings cacheName="demoCache"> <expiration type="None" duration="100" /> </cacheSettings> </settings> </ncContentOptimization> ... |
NCache Adicionar ao carrinho ASP.NET View State Cache NCache Docs
Cache de saída ASP.NET
Para páginas da Web que estão sendo acessadas com frequência, você pode usar cache de saída para melhorar os tempos de resposta para essas páginas específicas. O sistema de cache de saída do ASP.NET armazena em cache as diferentes versões do conteúdo das páginas, dependendo dos vários parâmetros, como parâmetros de string de consulta e tipo de navegador.
Você pode habilitar o cache de saída com NCache em seu aplicativo ASP.NET sem qualquer alteração de código e simplesmente conectando o seguinte web.config:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
... <caching> <outputCache defaultProvider ="NOutputCacheProvider"> <providers> <add name="NOutputCacheProvider" type= "Alachisoft.NCache.OutputCacheProvider.NOutputCacheProvider, Alachisoft.NCache.OutputCacheProvider, Version=x.x.x.x, Culture=neutral, PublicKeyToken=cff5926ed6a53769" cacheName="demoCache" exceptionsEnabled="true"enableDetailLogs="false" enableLogs="true" writeExceptionsToEventLog="true"/>" </providers> </outputCache> </caching> ... |
NCache Adicionar ao carrinho NCache Documentos de cache de saída Cache de Saída ASP.NET
Conclusão
Para resumir, um cache distribuído como NCache é altamente escalável, confiável e com desempenho otimizado para lidar com cache no ASP.NET. Ele tem todos os recursos necessários para superar todas as limitações do cache do ASP.NET e é o único cache distribuído que pode lidar com o cache do ASP.NET por conta própria sem que você se preocupe com isso. Com todos os sabores de cache disponíveis com NCache, você pode facilmente armazenar em cache qualquer tipo de dados que seu aplicativo exija, garantindo um aumento no desempenho.
NCache Adicionar ao carrinho Baixar NCache Comparação de edições
Muito bom artigo, Rony. O cache do ASP.NET é explicado em detalhes. O cache distribuído NCache é confiável e oferece um melhor desempenho para ASP.NET. Ele ajuda a superar as limitações do cache do ASP.NET. O artigo dá uma visão clara de como o cache distribuído pode ser feito.