缓存加载器和刷新器 NCache

NCache 是一种用于 .NET 的极快且可扩展的内存中分布式缓存,可缓存应用程序数据以减少昂贵的数据库访问。 利用 NCache 消除与数据存储和数据库相关的性能瓶颈。

随着缓存大小的增长以及您越来越多地缓存引用/查找数据,您将面临需要在启动时填充空缓存的问题。 然后是保持这些缓存数据最新的问题,并定期向其中添加更多数据,以便将整个数据集保留在缓存中。 而且,要完成所有这些,您不仅需要开发自定义应用程序,还要将其托管在某个地方,并确保它始终在缓存启动时以及按计划的时间间隔运行。

这是很多额外的管理和头痛 NCache 通过其强大的缓存加载器/刷新器功能为您接管。 NCache 允许您开发自定义服务器端代码并​​将其注册为缓存加载器和刷新器。

NCache 为您提供以下内容:

  1. 缓存加载器(分布式和并行): 您可以将缓存加载器开发为服务器端代码,该代码在集群中的所有缓存服务器上部署和运行。 然后,当缓存启动时, NCache 在每个缓存服务器上并行调用此缓存加载器,以从数据库/数据源中读取其部分数据(称为数据集)并将其加载到缓存中。 Cache Loader 在所有缓存服务器上并行运行,将加载数据的工作分配到多个并行数据集中。
  2. 缓存刷新器(分布式和并行): 您可以将缓存刷新器开发为服务器端代码,该代码在集群中的所有缓存服务器上部署和运行。 然后, NCache 定期(计划)调用您的缓存刷新器以从您的数据库/数据源获取更新或新数据并将其放入缓存中。 您也可以按需调用 Cache Refresher。 Cache Refresher 在所有缓存服务器上并行运行,以将加载数据的工作分配到多个并行数据集中。
缓存加载器和刷新器 NCache

缓存加载器/刷新器的好处

以下是使用 Cache Loader / Refresher 功能的一些好处 NCache.

  1. 并行加载/刷新数据集: 如果您的缓存很大,加载或刷新可能需要一些时间。 而且,如果您自己为此目的编写代码,您很可能会在单台计算机上运行它,因此它将按顺序加载所有数据。 但, NCache 在所有缓存服务器上分发和运行缓存加载器/刷新器。 因此,数据加载是并行的并且速度更快。
  2. 缓存加载器/刷新器的高可用性: NCache 在所有缓存服务器上部署缓存加载器/刷新器。 这意味着如果任何缓存服务器出现故障,加载/刷新不会停止,因为它正在其他缓存服务器上运行。 而且,当您向集群添加新的缓存服务器时, NCache 使缓存加载器/刷新器也可用,从而增加了高可用性。 如果您编写此代码并自己运行,这是您无法实现的。
  3. NCache 为您托管: 如果您必须自己开发和运行此代码,则需要确保它始终运行,即使您运行该代码的服务器出现故障也是如此。 这是因为您的缓存依赖于此代码来保持新鲜和完整。 而且,在生产中管理这样的事情需要做很多工作。 幸运的是, NCache 为您承担此责任,并在所有缓存服务器上为您托管缓存加载器/刷新器。 NCache 还确保此代码在多个服务器上运行以实现如上所述的高可用性。
  4. 加载器/刷新器运行非常接近缓存: 如你所知, NCache 在集群中的所有缓存服务器上部署和运行缓存加载器/刷新器。 这意味着您的缓存加载器/刷新代码运行在非常接近缓存本身的位置。 而且,在大型数据集的情况下,这也加快了数据的加载/刷新。

功能亮点

以下是 Read-through、Write-through 和 Write-behind 功能的一些亮点 NCache.

  1. 服务器端代码(.NET): 您在 .NET 中开发缓存加载器/刷新器。 您可以开发一个用于加载器和刷新器的接口,然后将代码部署到集群中的所有缓存服务器。 NCache 然后可以在缓存启动时或稍后为 Refresher 调用它们。 您的代码是在 .NET 中开发的,并被本机调用 NCache 因为它也是在 .NET 中开发的。
  2. 加载器/刷新器在单独的过程中运行: NCache 在每个缓存服务器上的单独进程中运行您的缓存加载器/刷新器,而不是具有缓存数据的进程。 这意味着您的缓存不受缓存加载器/刷新器代码中的任何错误或崩溃的影响,因为它的进程可以通过以下方式轻松重新启动 NCache 同一缓存服务器上的管理服务。
  3. 多个命名数据集: 您可以定义多个命名数据集,将数据加载/刷新分解为并行数据块。 通过在配置中命名数据集,负责加载/刷新任何命名数据集的缓存加载器/刷新器代码知道它是哪个数据集,然后可以使用适合仅获取该数据的代码。
  4. 在运行时分发到缓存服务器的数据集: NCache 使用循环算法将数据集分发到集群中的所有缓存服务器以并行加载/刷新。 这会大大加快加载/刷新速度,因为集群中始终至少有 2 个缓存服务器,而且很可能超过 2 个。
  5. 数据集级别调度(每月、每周、每日时间、每日间隔): NCache 允许您在数据集级别定义加载/刷新计划,以便每个数据集可以有自己的计划。 调度可以是每月、每周、每日时间和每日间隔。 Daily Time 表示每天的指定时间,而 Daily Interval 表示每天在一天中运行多次,但在等待最后一次执行的特定时间间隔之后。
  6. 按需数据集刷新: 除了提供数据集级别的调度, NCache 还提供了一个 PowerShell Cmdlet,允许您按需调用特定的数据集刷新。 这样,如果您觉得任何 Dataset 数据发生了变化,但它的预定时间还没有到来,您可以调用 NCache 刷新它。 您可以将此调用集成到任何应用程序中,您可以更好地了解数据库/数据源中的数据状态,您的应用程序可以调用是否按需刷新。

缓存加载器/刷新器接口

开发缓存加载器/刷新器代码非常简单。 下面是它的接口示例。

缓存加载器/刷新器接口

public interface ICacheLoader : IDisposable {
	void Init(IDictionary<string, string> parameters, string cacheName);
	object LoadDatasetOnStartup(string dataset);
	object RefreshDataset(string dataset, object userContext);
	IDictionary<string, RefreshPreference> 
GetDatasetsToRefresh(IDictionary<string, object> userContexts);
}

联系我们

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