数据缓存 NCache (快速浏览)

让我们快速了解一下数据缓存 NCache。 请注意 NCache is 业界唯一 100% 原生 .NET 缓存解决方案. 就是这样 NCache 通常部署在企业中用于数据缓存。如您所见,有一个速度极快且可扩展的单独缓存层。 NCache 如果您的应用程序需要更多的交易容量,您可以向缓存层添加更多的服务器。

NCache 企业部署

还请注意应用服务器上的这些缓存,它们称为客户端缓存。 客户端缓存 在分布式缓存环境中为您提供 InProc 速度。这里的目标是让您缓存尽可能多的数据,以便大约 80% 到 90% 的时间您能够从缓存中找到数据并避免那些昂贵的数据库访问。这可以提高您的应用程序性能和可扩展性。

数据缓存API

以下是数据缓存 API 的概述 NCache,.NET 和 Java 都支持。这很简单。你可以通过名称连接到缓存,然后执行 cache.Get、Add、Insert、Remove。它们是它的异步版本。显然,这只是整个缓存的一小部分。

.NET API

  • 连接升级包

    ICache cache = CacheManager.GetCache(name);
    cache.Dispose();
  • 获取数据

    Employee emp = cache.Get<Employee>(key); 
    bool isPresent = cache.Contains(key);
  • 写入数据

    cache.Add(key, emp);
    cache.AddAsync(key, emp);
    
    cache.Insert(key, emp);
    cache.InsertAsync(key, emp);
    
    Employee emp = cache.Remove(key);
    cache.RemoveAsync(key);

Java API

  • 连接升级包

    Cache cache = CacheManager.getCache(name);
    cache.close();
  • 获取数据

    Employee emp = cache.get(key, Employee.class); 
    boolean isPresent = cache.contains(key);
  • 写入数据

    cache.add(key, emp);
    cache.addAsync(key, emp);
    
    cache.insert(key, emp);
    cache.insertAsync(key, emp);
    
    Employee emp = cache.remove(key);
    cache.removeAsync(key);

要缓存的数据类型

参考资料

接下来要讨论的是要缓存什么类型的数据。首先是参考数据。参考数据实际上是变化不频繁的数据。这些是您的产品目录。它不是静态数据,但可能会在几小时、几天或几周内发生变化。而且,您应该缓存整个数据集,例如所有产品。这样您以后就可以在缓存上运行 SQL 查询。

交易数据

要缓存的第二种数据类型是事务数据。此数据是在运行时创建的。这些是您的顾客、您的订单。并且,此数据变化非常频繁,但您仍然可以将其缓存 15 秒、几分钟、5 分钟、10 分钟。通常是在您的用户会话期间。

对象和集合

下一个问题是如何缓存这些数据?好吧,你可以将其缓存为对象、.NET 或 Java 或任何其他语言对象。或者,如果你使用集合,则缓存为 .NET 或 Java 集合。你可以将整个集合缓存为一个对象,也可以单独缓存集合中的每个项目。

数据结构(分布式)

NCache 还为您提供了非常强大的分布式数据结构,如 List、Queue、Set、Dictionary、Counter。这些允许您将复杂数据一起缓存在缓存中。

要缓存的数据类型

  1. 参考资料

    • 不频繁变化(小时、天、周)
    • 缓存整个数据集 (用于 SQL 查询)
    • 永久数据 (来自数据库)
  2. 交易数据

    • 频繁变化(秒、分钟)
    • 永久数据(来自数据库)
  3. 对象

    • .NET/Java 对象
  4. 系列

    • .NET / Java 集合
    • 将整个集合缓存为一个项目或单独缓存每个项目
  5. 数据结构

    • 列表、队列、集合、字典、计数器
    • 将复杂数据缓存为一个项目

保持缓存最新

好吧,首先要记住的是保持缓存的新鲜度,因为这些数据也存在于数据库中,缓存应该与数据库保持一致。有四种方法可以 NCache 为您提供。

到期日期(绝对)

第一个是 到期 根据数据的性质(参考数据或交易数据)决定数据过期时间。

与数据库同步

第二点是 NCache 为您提供两种基于事件的方式来同步缓存和数据库。一种是 SQL Dependency,另一种是 Oracle Cache Dependency。 NCache 还为您提供了一种基于轮询的方式来同步缓存和数据库。

与自定义数据源同步

保持缓存最新的第三种方法是将缓存与自定义数据源同步。这显然需要您提供一些自定义代码来 NCache so NCache 称之为。

缓存中的数据关系

第四点是 NCache 管理缓存中的数据关系。因此,如果缓存中存在一对一、一对多类型的关系,那么如果多个项目发生变化,或者如果一个项目发生变化,则多个项目可能也需要更新。因此, NCache 管理那个。

保持缓存新鲜

与数据库一致

  1. 到期日期(绝对)

    • 参考数据: 到期(小时、天、周)
    • 交易数据: 过期(秒,分钟)
  2. 与数据库同步

    • SqlDependency(事件)、OracleCacheDependency(事件), 数据库依赖关系 (轮询)
  3. 与自定义数据源同步

    • 自定义依赖项(缓存服务器上的自定义代码)
    • 文件依赖
  4. 缓存中的数据关系

    • 缓存依赖性(基于密钥). 一对一和一对多关系

在缓存中查找数据

群组、标签和命名标签

嗯,一旦你开始缓存大量数据,那 NCache 作为键值存储,仅根据键获取所有内容并不方便。因此,这就是为什么 NCache 为您提供强大的功能,如组、标签、命名标签,以便您可以逻辑地对它们进行分组并在稍后获取它们。

SQL查询

您还可以使用 SQL查询 根据对象属性、组、标签和命名标签进行搜索。

LINQ 查询

如果你有一个.NET应用程序,那么你可以使用 LINQ 查询 对于这一点。

在缓存中查找数据

强大的搜索功能

  1. 组、标签、命名标签

    • 对数据进行逻辑分组,以便以后轻松查找
  2. SQL 查询

    • 基于对象属性、组、标签和命名标签
    • 支持 SELECT、GROUP BY 和 UPDATE
  3. LINQ 查询(仅限 .NET)

    • 常规 .NET 或通过 EF Core

直读缓存

通读

NCache 还为您提供了可简化应用程序的 Read-Through Cache。在 Read-Through Cache 中,当您执行 cache.Get 并且缓存中没有数据时,它实际上会调用您的自定义代码 Read-Through 处理程序来从数据库中提取该数据。

直写

还有写通缓存,也就是当你执行缓存时。添加、插入或删除, NCache 调用您的自定义代码,再次调用写入处理程序来更新数据库。

后写

后写基本上是异步完成的写,因此您的应用程序不必等待数据库更新,并且可以提高应用程序的性能。

读取缓存

简化您的申请

  1. 通读

    • 缓存调用 您的自定义代码 从数据库中获取。 自动重新加载: 到期后
      和数据库同步(而不是删除项目)
  2. 直写

    • 缓存调用 您的自定义代码 更新数据库。
  3. 写下来

    • 异步 写通。 批量处理 了。
    • 提高 应用程序性能 关于更新

缓存是自给自足的

缓存加载器

NCache 还为您提供了一个自给自足的缓存,这意味着它可以自行保持填充和新鲜。有一个 缓存加载器 在启动时调用。这是您的自定义代码 NCache 调用它从数据库加载数据。您可以定义多个数据集以进行并行加载。

缓存刷新器

也有 缓存刷新器 它会按每日、每周、每月或任何自定义间隔甚至按需重复调用。而且,每次调用时它都会刷新缓存。刷新意味着它会更新现有数据或添加新数据。同样,这是您的自定义代码,它会执行所有这些操作。

缓存是自给自足的

保持新鲜

  1. 缓存加载器

    • 启动时: 缓存从数据源自行加载
    • 运行你的 自定义代码 为了它。
    • 定义多个 数据集 用于并行加载
  2. 缓存刷新器

    • 反复: 缓存会自行刷新。更新现有数据;添加新数据。
    • 运行你的 自定义代码 定义多个 数据集.
    • 每天、每周、每月、任何间隔或按需运行。

数据缓存集成

.NET 集成

对于 .NET 应用程序 NCache 提供 与 EF Core 集成. NCache 已经实施 EF Core 扩展方法,这样您就拥有了一个可以无缝使用的 EF Core 缓存。 NCache 还提供了 NHibernate 二级缓存供您使用。并且,对于传统的 .NET 应用程序 NCache 提供了一个 EF6 缓存 供应商。

.NET 集成

用于数据缓存

  1. EF 核心缓存

    • EF Core 扩展方法无缝使用
    • 管理参考和交易数据
  2. NHibernate 缓存

    • 实体级缓存(没有代码更改)
  3. EF 6 缓存

    • EF 6.2 或更早版本的 ADO.NET 提供程序(没有代码更改)

Java 集成

对于 Java 应用程序 NCache 提供了 休眠二级缓存 供您使用。对于 Spring 应用程序 NCache 给你 弹簧缓存 您可以通过注释使用它。 NCache 还实施了广受欢迎的 缓存API 在 Java 景观中。

Java 集成

用于数据缓存

  1. 休眠缓存

    • 实体级缓存(没有代码更改)
  2. 弹簧缓存

    • 基于注释
  3. 缓存API

    • 基于 JSR-107 的标准 Java API

安排演示

请联系我们 安排演示 了解 NCache 卓越功能 详细了解策略以及如何使用 NCache 在您的申请中。非常感谢!

接下来做什么?

联系我们

联系电话

+1 214-619-2601 (美国)

+44 20 7993 8327 (英国)

©版权所有 Alachisoft 2002 - 版权所有。 NCache 是 Diyatech Corp. 的注册商标。