让我们快速了解一下数据缓存 NCache。 请注意 NCache is 业界唯一 100% 原生 .NET 缓存解决方案. 就是这样 NCache 通常部署在企业中用于数据缓存。如您所见,有一个速度极快且可扩展的单独缓存层。 NCache 如果您的应用程序需要更多的交易容量,您可以向缓存层添加更多的服务器。
还请注意应用服务器上的这些缓存,它们称为客户端缓存。 客户端缓存 在分布式缓存环境中为您提供 InProc 速度。这里的目标是让您缓存尽可能多的数据,以便大约 80% 到 90% 的时间您能够从缓存中找到数据并避免那些昂贵的数据库访问。这可以提高您的应用程序性能和可扩展性。
以下是数据缓存 API 的概述 NCache,.NET 和 Java 都支持。这很简单。你可以通过名称连接到缓存,然后执行 cache.Get、Add、Insert、Remove。它们是它的异步版本。显然,这只是整个缓存的一小部分。
接下来要讨论的是要缓存什么类型的数据。首先是参考数据。参考数据实际上是变化不频繁的数据。这些是您的产品目录。它不是静态数据,但可能会在几小时、几天或几周内发生变化。而且,您应该缓存整个数据集,例如所有产品。这样您以后就可以在缓存上运行 SQL 查询。
要缓存的第二种数据类型是事务数据。此数据是在运行时创建的。这些是您的顾客、您的订单。并且,此数据变化非常频繁,但您仍然可以将其缓存 15 秒、几分钟、5 分钟、10 分钟。通常是在您的用户会话期间。
下一个问题是如何缓存这些数据?好吧,你可以将其缓存为对象、.NET 或 Java 或任何其他语言对象。或者,如果你使用集合,则缓存为 .NET 或 Java 集合。你可以将整个集合缓存为一个对象,也可以单独缓存集合中的每个项目。
NCache 还为您提供了非常强大的分布式数据结构,如 List、Queue、Set、Dictionary、Counter。这些允许您将复杂数据一起缓存在缓存中。
好吧,首先要记住的是保持缓存的新鲜度,因为这些数据也存在于数据库中,缓存应该与数据库保持一致。有四种方法可以 NCache 为您提供。
第一个是 到期 根据数据的性质(参考数据或交易数据)决定数据过期时间。
第二点是 NCache 为您提供两种基于事件的方式来同步缓存和数据库。一种是 SQL Dependency,另一种是 Oracle Cache Dependency。 NCache 还为您提供了一种基于轮询的方式来同步缓存和数据库。
保持缓存最新的第三种方法是将缓存与自定义数据源同步。这显然需要您提供一些自定义代码来 NCache so NCache 称之为。
第四点是 NCache 管理缓存中的数据关系。因此,如果缓存中存在一对一、一对多类型的关系,那么如果多个项目发生变化,或者如果一个项目发生变化,则多个项目可能也需要更新。因此, NCache 管理那个。
嗯,一旦你开始缓存大量数据,那 NCache 作为键值存储,仅根据键获取所有内容并不方便。因此,这就是为什么 NCache 为您提供强大的功能,如组、标签、命名标签,以便您可以逻辑地对它们进行分组并在稍后获取它们。
您还可以使用 SQL查询 根据对象属性、组、标签和命名标签进行搜索。
如果你有一个.NET应用程序,那么你可以使用 LINQ 查询 对于这一点。
NCache 还为您提供了可简化应用程序的 Read-Through Cache。在 Read-Through Cache 中,当您执行 cache.Get 并且缓存中没有数据时,它实际上会调用您的自定义代码 Read-Through 处理程序来从数据库中提取该数据。
还有写通缓存,也就是当你执行缓存时。添加、插入或删除, NCache 调用您的自定义代码,再次调用写入处理程序来更新数据库。
后写基本上是异步完成的写,因此您的应用程序不必等待数据库更新,并且可以提高应用程序的性能。
NCache 还为您提供了一个自给自足的缓存,这意味着它可以自行保持填充和新鲜。有一个 缓存加载器 在启动时调用。这是您的自定义代码 NCache 调用它从数据库加载数据。您可以定义多个数据集以进行并行加载。
也有 缓存刷新器 它会按每日、每周、每月或任何自定义间隔甚至按需重复调用。而且,每次调用时它都会刷新缓存。刷新意味着它会更新现有数据或添加新数据。同样,这是您的自定义代码,它会执行所有这些操作。
对于 .NET 应用程序 NCache 提供 与 EF Core 集成. NCache 已经实施 EF Core 扩展方法,这样您就拥有了一个可以无缝使用的 EF Core 缓存。 NCache 还提供了 NHibernate 二级缓存供您使用。并且,对于传统的 .NET 应用程序 NCache 提供了一个 EF6 缓存 供应商。
对于 Java 应用程序 NCache 提供了 休眠二级缓存 供您使用。对于 Spring 应用程序 NCache 给你 弹簧缓存 您可以通过注释使用它。 NCache 还实施了广受欢迎的 缓存API 在 Java 景观中。
请联系我们 安排演示 了解 NCache 卓越 和 功能 详细了解策略以及如何使用 NCache 在您的申请中。非常感谢!