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 服务器也是 100% .NET / .NET Core. 没有其他解决方案具有此功能,因为其他解决方案是 C++ 或 Linux。 NCache 服务器同时支持 .NET 和 .NET Core 并通过 .NET core 版,可以部署 NCache 在以下给定的能力: