NCache 是一个开源的内存分布式缓存,适用于 .NET 和基于 Java 的应用程序。 NCache 帮助您为任务关键型应用程序实现极快的事务处理速度,并且易于线性扩展。
NCache 由于其内存特性和分布式架构,它是一款速度极快且可扩展的开源数据存储。它是市场上唯一一款 100% 兼容 .NET / .NET Core 的解决方案,因为其他解决方案都是基于 C++ 和 Linux 的,这使得它能够完美地融入您的应用程序的 .NET 技术栈。它是 .NET 开发人员社区最喜爱的缓存解决方案,并在过去 15 年中一直保持着 .NET 市场的领先地位。
您很可能会受益于使用 NCache 如果您的申请属于以下类别之一:
处理极端事务负载: 您的应用程序需要在高峰时段处理大量事务。 NCache 让您无需停机即可处理所有事务负载。
面向客户的网站: 零售企业主要通过面向客户的网站或在线商店或纯电子商务企业在线销售您的产品进行大部分交易,可以依靠 NCache 高可用性。 同样地, NCache 可以使领先的航空公司受益,从网站或欧洲的在线游戏或投注网站销售机票和预订,客户在重大体育赛事期间登录以实时下注。
后台处理业务: 需要在后台处理大量交易的企业,例如处理客户电汇的银行或监控您的客户交易以进行欺诈检测的信用卡公司。 同样,实时监控大量车辆的物流企业或实时监控大量设备并分析其行为的公用事业公司可以使用 NCache 以确保故障安全的数据缓存。
如果您是这些企业之一或许多其他类似企业,那么您无法承受在高峰期减慢您的应用程序,因为您的业务成本非常高。 不幸的是,许多应用程序确实变慢了,因为数据库无法应对如此高的事务负载并成为瓶颈。 原因与应用层不同,您可以在事务负载增长时添加更多服务器,您不能将更多服务器添加到数据库层。
这个问题的解决方案是使用 NCache 缓存应用程序数据并将所有临时或临时数据存储在其中。 与您的数据库不同, NCache 是分布式的,允许您构建两个或更多服务器的缓存层,并将所有缓存服务器的内存和 CPU 集中到一个逻辑容量中。 NCache 然后,随着事务负载的增长,您可以将更多服务器添加到此缓存层。

其结果是, NCache 可以线性扩展,永远不会成为性能瓶颈。 最重要的是,由于 NCache 完全在内存中,速度超快。 您可以使用 NCache 以三种不同的方式。
让我们快速浏览一下这些功能 NCache 提供通过消除性能瓶颈来确保线性可扩展性。
NCache 有许多方法可以帮助您保持缓存数据尽可能新鲜,而无需您的应用程序跟踪所有这些。 您可以使用绝对和滑动到期自动从缓存中删除数据。
你也可以 NCache 如果其他应用程序更改数据库中的数据,则自动与 SQL 数据库同步。 您还可以指定缓存中数据的一对多和一对一关系,以便在更新缓存时不会违反数据完整性。
如果您将大量数据放入缓存中,那么 NCache 允许您根据对象属性、组、标签和命名标签来搜索它。 这使得查找数据变得非常容易。 您可以使用 SQL 或 LINQ 查询来搜索缓存和 NCache 还创建索引以加快搜索速度。
NCache 是 .NET 空间中唯一为您提供服务器端代码功能的解决方案。 您可以实现 Read-Thru 让您的缓存从数据库中获取数据,当您将其与自动加载功能结合使用时, NCache 在探索或数据库同步时自动重新加载数据。 您还可以实现 Write-Thru 让缓存为您更新数据库。
后写异步更新数据库,因此您的应用程序不必等待它。 最后,缓存加载器会在您启动缓存时自动预加载缓存。
NCache 是 .NET 中唯一提供客户端缓存功能的解决方案,也称为“近缓存”。 它为您提供 InProc 性能,就好像缓存数据保存在您的应用程序进程中一样。 客户端缓存是应用程序的本地缓存,但与其他应用程序或其他用户的所有更新的缓存层保持同步。 客户端缓存为您的应用程序提供了显着的性能提升。

如果您的应用程序部署到多个数据中心、多个 Azure 区域或多个 AWS 可用区,那么 NCache 允许您跨 WAN 复制缓存,而不会减慢任何位置的应用程序。 你可以部署 NCache 在主动-被动或主动-主动数据中心配置中。
就像你已经知道的那样, NCache 这是一个 100% 的 .NET / .NET Core 解决方案,让我们来看看它对 .NET 有哪些支持,以及有哪些不同的部署方式。 NCache. NCache 提供一个缓存客户端,并完全支持 .NET Framework,例如:
对于 .NET Core, NCache 支持:
就像缓存客户端一样, NCache 服务器端也完全基于 .NET / .NET Core。其他解决方案都不具备这一点,因为它们要么使用 C++,要么使用 Linux。 NCache 服务器同时支持 .NET 和 .NET Core,并且通过 .NET Core 版本,您可以进行部署。 NCache 在以下给定的能力: