Um cache distribuído é essencial para qualquer aplicativo que exija desempenho rápido durante cargas de transação extremas. Um cache distribuído na memória tem um desempenho melhor do que um banco de dados. Além disso, ele pode fornecer escalabilidade linear ao lidar com cargas de transações maiores, pois pode facilmente permitir que você adicione mais servidores ao cluster de cache que um servidor de banco de dados não pode fazer.
Apesar de todos esses benefícios, ainda há um problema. Na maioria dos casos, um cache distribuído é hospedado em um conjunto de servidores de cache dedicados na rede, portanto, seu aplicativo precisa fazer viagens de rede para buscar quaisquer dados. E isso não é tão rápido quanto acessar dados localmente e especialmente de dentro do processo de inscrição. É aqui que o cache do cliente é útil.
In NCache, um cache do cliente mantém uma conexão aberta com o cluster de cache distribuído e recebe notificações de eventos do cluster de cache sempre que os dados do cache do cliente forem alterados lá. Um cluster de cache distribuído conhece a localização dos itens de dados entre os caches do cliente, portanto, as notificações de eventos são enviadas apenas para o cache do cliente relevante, em vez de transmiti-las para todos os caches do cliente.
NCache Adicionar ao carrinho Cache de cliente Notificações de eventos no cache
Como funciona o cache do cliente?
Um cache de cliente nada mais é do que um cache local em seu servidor web/aplicativo, mas está ciente do cache distribuído junto com a conexão com ele. Além disso, um cache de cliente pode estar em processo (existe um cache de cliente dentro de seu aplicativo) ou fora de processo. Isso permite que um cache do cliente forneça um desempenho de leitura muito mais rápido do que o cache distribuído e, ao mesmo tempo, garante que os dados do cache do cliente sejam sempre mantidos sincronizados com o cache distribuído.
No entanto, um cache distribuído notifica o cache do cliente de forma assíncrona após atualizar os dados com êxito no cluster de cache distribuído. Tecnicamente, isso significa que há uma pequena janela de tempo (em milissegundos) durante a qual alguns dos dados no cache do cliente são mais antigos que o cache distribuído. Agora, na maioria dos casos, isso é perfeitamente aceitável para os aplicativos. Mas, em alguns casos, os aplicativos exigem 100% de precisão dos dados.
Então, para lidar com essas situações, NCache também fornece um modelo de sincronização pessimista para o cache do cliente. Nesse modelo, toda vez que o aplicativo tenta buscar qualquer coisa do cache do cliente, o cache do cliente primeiro verifica se o cache distribuído possui uma versão mais recente do mesmo item armazenado em cache. Se isso acontecer, o cache do cliente buscará uma versão mais recente do cache distribuído. Agora, essa viagem ao cache distribuído tem seu custo, mas ainda é mais rápida do que buscar o item em cache inteiramente do cache distribuído.
Quando usar um cache de cliente?
Depois de ler este blog, a principal questão que vem à mente é quando usar um cache de cliente e quando não usá-lo. Bem, a resposta é bastante simples. Se seus aplicativos executam mais leituras do que gravações, use um cache de cliente, especialmente se os mesmos itens forem repetidos repetidamente.
Se seu(s) aplicativo(s) executa(m) muitas atualizações (ou pelo menos tantas quanto as leituras), não use um cache de cliente porque as atualizações são mais lentas com um cache de cliente. Isso acontece porque você está atualizando dois caches diferentes agora, o cache do cliente e o cache distribuído.
Conclusão
então, NCache permite que você aproveite o cache do cliente com um cache distribuído. Baixe um teste de 60 dias totalmente funcional do NCache Enterprise e experimente você mesmo.
NCache Adicionar ao carrinho Baixar NCache Comparação de edições
Você tem um blog muito interessante, continue postando essas mensagens informativas!