NCache é um cache distribuído na memória de código aberto para aplicativos baseados em .NET e Java. NCache ajuda você a alcançar velocidades transacionais extremamente rápidas para seus aplicativos de missão crítica com facilidade de escalabilidade linear.
NCache é um armazenamento de dados de código aberto extremamente rápido e escalável devido à sua natureza na memória e arquitetura distribuída. É o único 100% .NET / .NET Core solução no mercado, já que outras soluções são baseadas em C++ e Linux, fazendo com que ela se ajuste muito bem à pilha .NET de seus aplicativos. É a solução de cache favorita na comunidade de desenvolvedores .NET, tornando-a líder de mercado .NET nos últimos 15 anos.
Você provavelmente se beneficiará usando NCache se seu aplicativo pertence a uma das seguintes categorias:
Lidando com cargas de transação extremas: Seu aplicativo precisa processar quantidades extremas de transações durante os horários de pico. NCache permite lidar com toda essa carga transacional sem qualquer tempo de inatividade.
Sites voltados para o cliente: As empresas de varejo que realizam a maioria das transações principalmente por meio de um site voltado para o cliente ou uma loja online ou um negócio puramente de comércio eletrônico que vende seus produtos online, podem contar com NCache para alta disponibilidade. Da mesma forma, NCache pode beneficiar as principais companhias aéreas que vendem bilhetes e reservas a partir do site ou de um site de jogos ou apostas online na Europa, onde os clientes fazem login durante os principais eventos esportivos para fazer apostas em tempo real.
Negócios de processamento em segundo plano: Uma empresa que precisa processar muitas transações em segundo plano, como bancos processando transferências de clientes ou uma empresa de cartão de crédito monitorando as transações de seus clientes para detectar fraudes. Da mesma forma, uma empresa de logística, monitorando muitos veículos em tempo real ou uma concessionária de serviços públicos monitorando muitos dispositivos em tempo real e analisando seu comportamento, pode usar NCache para garantir o cache de dados à prova de falhas.
Se você é uma dessas empresas ou uma série de outras empresas semelhantes, não pode permitir que seu aplicativo fique lento durante os horários de pico porque o custo para sua empresa é muito alto. Infelizmente, muitos aplicativos ficam lentos porque o banco de dados não consegue lidar com cargas de transações tão altas e se torna um gargalo. Por ser diferente da camada de aplicativo em que você pode adicionar mais servidores à medida que a carga da transação aumenta, você não pode adicionar mais servidores à camada de banco de dados.
A solução para este problema é usar NCache para armazenar em cache os dados do aplicativo e também armazenar todos os dados temporários ou transitórios nele. Ao contrário do seu banco de dados, NCache é distribuído e permite que você construa uma camada de cache de dois ou mais servidores e agrupe a memória e a CPU de todos os servidores de cache em uma capacidade lógica. NCache em seguida, permite adicionar mais servidores a essa camada de cache à medida que a carga da transação aumenta.
Como resultado, NCache pode escalar linearmente e nunca se torna um gargalo de desempenho. Ainda por cima, desde NCache é totalmente na memória, é super-rápido. Você pode usar NCache de três maneiras diferentes.
Vamos dar uma olhada rápida nos recursos que NCache oferece para garantir escalabilidade linear removendo gargalos de desempenho.
NCache tem várias maneiras de ajudá-lo a manter seus dados de cache o mais atualizados possível, sem que seu aplicativo precise acompanhar tudo isso. Você pode usar expirações absolutas e deslizantes para remover automaticamente os dados do cache.
Você também pode ter NCache sincronizar-se automaticamente com o banco de dados SQL se os dados forem alterados no banco de dados por outros aplicativos. Você também pode especificar relacionamentos de um para muitos e um para um de dados no cache para que a integridade dos dados não seja violada quando o cache for atualizado.
Se você está colocando muitos dados no cache, então NCache permite pesquisá-lo com base em atributos de objeto, grupos, tags e tags nomeadas. Isso torna muito fácil encontrar seus dados. Você pode usar consultas SQL ou LINQ para pesquisar o cache e NCache também cria índices para agilizar suas buscas.
NCache é a única solução no espaço .NET que oferece capacidade de código do lado do servidor. Você pode implementar o Read-Thru para permitir que seu cache busque os dados do seu banco de dados e quando você combinar isso com o recurso Auto-Load, NCache recarrega automaticamente os dados nas explorações ou na sincronização do banco de dados. Você também pode implementar Write-Thru para permitir que o cache atualize seu banco de dados para você.
O write-behind atualiza o banco de dados de forma assíncrona para que seu aplicativo não precise esperar por ele. Por fim, um Cache Loader pré-carrega automaticamente o cache quando você o inicia.
NCache é a única solução em .NET que fornece um recurso de cache de cliente também chamado de “Near Cache”. Dá-lhe um desempenho InProc como se os dados de cache fossem mantidos dentro do seu processo de aplicação. O cache do cliente é um cache local para seu aplicativo, mas permanece sincronizado com a camada de cache para todas as atualizações feitas por outros aplicativos ou outros usuários. O cache do cliente dá ao seu aplicativo um aumento significativo no desempenho.
Se seu aplicativo for implantado em vários data centers, várias regiões do Azure ou várias zonas de disponibilidade da AWS, então NCache permite replicar o cache na WAN sem diminuir a velocidade do aplicativo em nenhum local. Você pode implantar NCache em uma configuração de data center Ativo-Passivo ou Ativo-Ativo.
Como você já sabe, NCache é 100% .NET / .NET Core solução, vamos ver que tipo de suporte .NET ele tem e também vamos ver diferentes maneiras de implantar NCache. NCache fornece um cliente de cache com suporte total de ambos .NET Framework com coisas como:
Escolha .NET Core, NCache suportes:
Assim como o cliente de cache, NCache servidor também é 100% .NET / .NET Core. Nenhuma outra solução tem isso, pois outras são C++ ou Linux. NCache servidor suporta .NET e .NET Core e através do .NET core Edition, você pode implantar NCache nas capacidades abaixo indicadas: