• Facebook
  • Twitter(现为X)
  • Youtube
  • 内衬
  • RSS
  • 文档
  • 比较
  • 博客
  • 下载
  • 联系我们
下载
显示/隐藏目录

缓存加载器和刷新器属性和概述

NCache 提供缓存加载器和缓存刷新器,以在分布式缓存环境中实现快速可靠的缓存初始化和数据同步。启动缓存加载器在启动时预先填充缓存中的必要数据,从而消除冷缓存延迟,最大限度地减少数据库负载,并确保对性能要求严格的应用程序能够立即获得数据。数据加载由以下程序执行: NCache 执行服务支持跨集群节点的并行、基于数据集的加载。为了保持预加载数据的最新状态,缓存刷新器使用计划或按需刷新机制自动将缓存数据与底层数据源同步。

NCache的启动缓存加载器对于需要在启动后立即获取特定数据集的应用程序尤其有用。无需等待按需缓存填充,数据可以在启动时立即加载到缓存中。例如,视频流媒体网站可以在缓存启动时预加载数百个视频,以便用户无需手动输入数据即可立即观看。

重要提示

有时,由于主数据源的连接问题或执行自定义缓存加载器实现时出现错误,缓存加载器可能无法成功加载数据。要识别此类错误/异常,请检查执行服务日志。

在启动时向缓存加载数据非常有用。这样做可以避免因缓存为空而导致的启动性能问题,从而防止频繁向数据库发出数据请求(而数据库请求速度较慢)。 NCache 缓存启动加载器功能将帮助您在启动时使用您选择的数据预加载缓存。

尽管预加载数据具有优势,但它确实会导致缓存中加载的数据变得陈旧。 用户在缓存启动时加载相关数据,数据源中发生的任何更改都会使其过时。 为了防止这种无效, NCache 提供了另一个称为缓存刷新器的功能。缓存刷新器负责将缓存中加载的数据与数据源中更新的数据进行同步。

缓存加载器和刷新器属性

此 NCache 缓存加载器和刷新器是提升应用程序整体性能的关键功能,尤其是在缓存启动时。与其他功能一样,这些功能也具有各自的特性。这些特性将在下文中进行解释。

NCache 执行服务

在较早的 NCache 在过去的版本中,缓存和缓存加载器过去在同一进程中运行,这使得缓存进程负担过重,尤其是在加载时。 这种压力导致整个缓存的性能暂时下降。

因此,对于 OutProc 拓扑, NCache 有专门的 NCache 执行服务(以前称为加载器服务)用于管理任务,并在缓存启动时将数据从数据源加载到缓存中。或者,在集群拓扑中,每个节点都有一个专门的服务负责将数据加载到其缓存中。然而,在 InProc 拓扑中,任务仍然在同一进程中执行。

数据集

对于集群拓扑,如果单个节点上的数据加载占用了相当长的时间, NCache 允许在集群节点之间分配数据负载。数据根据用户为每个节点提供的数据集进行分发。每个节点有 NCache 分配执行服务根据数据集加载数据。基本上,数据集是一种将相似数据分组并加载在一起的方法。

在运行时将数据集分配给缓存服务器

注意:

NCache 在内部将数据集分配给节点——确保没有两个节点最终在缓存中加载相同的数据。 此分配还允许在更短的时间内加载大量数据。

协调器节点以循环方式在集群节点之间分发数据集。 因此,每个服务器都从列表中分配了一个数据集。 当其中一个节点完成针对其数据集加载数据时,它会接收下一个要加载的数据集。 本质上,如果分布数据集的数量大于节点的数量, NCache 它会为每个节点分配一个数据集,当没有其他可用节点时,它会将下一个数据集分配给第一个可用节点(该节点已完成数据加载)。假设用户希望在启动时将 Northwind 数据库中的特定数据加载到由 3 个节点组成的集群缓存中,那么缓存加载器的性能就会受到分配的数据集数量的影响。我们将在下面讨论此行为:

  • 5 个要加载的数据集: 用户分配 5 个数据集 (客户, 下单, 产品, 职员和 供应商)到装载机。 然后协调器节点以循环方式将数据集分配给节点 - 客户 到节点1, 订单管理 到节点2,并且 产品 到节点3。 一旦节点完成加载数据,协调器就会分配下一个数据集,即 职员 并最终 供应商 到下一个可用节点。

  • 3 个要加载的数据集: 用户分配 3 个数据集 (客户, 产品和 订单管理) 到 Loader - 意味着每个节点负责分配给它的数据集,因此它将根据数据集加载数据,同时确保均匀分布。

  • 2 个要加载的数据集: 用户分配 2 个数据集 (客户 和 产品)到装载机。 由于集群由三个节点组成,因此在加载过程中第三个节点将处于空闲状态。 这就是为什么它更喜欢数据集的数量等于或大于节点的数量 - 确保最大利用率。

数据集调度

数据集需要调度刷新。 所以, NCache 提供一个调度选项来决定更新缓存数据的时间间隔。 此时,刷新间隔会检查要更新的数据集,从而更新/刷新缓存中的后续数据。 缓存刷新程序提供的四种不同的计划选项的工作方式如下:

  • 每日间隔:每天的间隔确保数据集在缓存启动后按照设定的间隔刷新。 间隔值以分钟为单位。 例如,20 分钟表示数据集每 20 分钟刷新一次。

  • 每日时间:每日时间选项可确保数据集每天在用户提供的特定时间刷新。 与最大间隔为 60 分钟的每日间隔不同,它通常间隔 24 小时,并且一开始不依赖缓存启动。 当数据集更新频率不如每天更新的数据集时,通常会使用它。

  • 包周:每周选项可确保数据集在每周的特定日期、用户指定的时间刷新。 例如,如果您希望加载的数据集在每周一、周四和周六的午夜精确刷新,则需要设置每周数据集计划。

  • 包月:每月选项可确保数据集在每月指定的一天或多天以及每周的一个或多个工作日刷新。 例如,您可以指定数据集的刷新,以便服务在每月第一周和最后一周的每个星期一刷新它。

调度表达式的格式为 week:days:hours:minutes 指定调度表达式。

  • 周可以是 1-4,1 是该月的第一周。
  • 天数可以是 1-7,显示一周中的天数。 小时和分钟可以根据一天中的时间进行调度。 您可以通过添加以逗号分隔的天数来指定一周​​中的多天。
  • 用户可以选择一个月中的多个星期进行调度。

让我们举几个例子来理解调度表达式是如何工作的:

  1. 表达方式 1,2:2:00:00 调度是指数据集在每月第一周和第二周的第二天午夜刷新。

  2. 表达方式 1:1,2,7:15:30 用于计划显示数据集在每月第一周(周一、周二和周日)的第一天、第二天和第七天下午 3:30 刷新

加载机制

用户定义负责从主数据源加载对象的实现。每个单独的数据都作为完整的 CacheItem - 在缓存启动时添加到缓存中。

配置缓存加载器重试

如果加载缓存时操作失败, NCache 在继续下一步之前执行它。 默认, NCache 不会重试失败的操作。 但是,您可以通过 NCache 管理中心.

设置缓存加载器重试间隔

如果用户选择为失败的操作启用重试,用户还可以指定在再次尝试失败的操作之前等待的时间间隔(以秒为单位)。 间隔默认为 0。 但是,它是用户可配置的,通过 NCache 管理中心.

配置刷新间隔

为了检查哪些数据集需要更新/刷新,线程会在特定时间(称为刷新间隔)后运行。 默认情况下,刷新间隔为 900 秒。 此间隔的最小值为 1 秒,最大值为 3600 秒。 用户可以通过以下方式配置刷新间隔 NCache 管理中心.

按需数据集刷新

用户还可以选择手动刷新他们的数据集 调用刷新数据集 cmdlet。 通过此 cmdlet,用户可以立即或在接下来的 24 小时内使用 RefreshPreference 此 cmdlet 的选项。 此选项根据该过程是否会导致性能下降来确定何时发生此按需刷新。 如果没有,数据集将 RefreshNow. 如果是这样,数据集将在下一个预定时间通过 RefreshOnNextTimeOfDay 选项。

参见

缓存启动加载器和刷新器的组件
数据源提供者

联系我们

联系电话

+1 214-619-2601   (美国)

+44 20 7993 8327   (英国)

 
邮箱地址

sales@alachisoft.com

support@alachisoft.com

NCache
  • 版本比较
  • NCache 卓越
  • 基准
下载
定价
尝试游乐场

部署
  • 云(SaaS 和软件)
  • 内部部署
  • Kubernetes
  • Docker
技术用例
  • ASP.NET 会话
  • ASP.NET Core 会话
  • 发布/订阅消息
  • 实时 ASP.NET SignalR
  • 物联网(IOT)
  • NoSQL 数据库
  • 流处理
  • 微服务
相关资源
  • 杂志文章
  • 第三方文章
  • 专题文章
  • 视频
  • 白皮书
  • 作品
  • 会谈
  • 博客
  • 文档
客户案例研究
  • 评价
  • 客户
支持
  • 安排演示
  • 论坛(谷歌组)
  • 小技巧
关于我们
  • 领导团队
  • 合作伙伴
  • 新闻
  • 活动
  • 加入我们
联系我们

  • 英语简体中文法语版德语版意大利语版日语版韩语版葡萄牙语西班牙语

  • 联系我们
  •  
  • 网站地图
  •  
  • 使用条款
  •  
  • 隐私政策
©版权所有 Alachisoft 2002 - 版权所有。 NCache 是 Diyatech Corp. 的注册商标。
Back to top