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

AppFabric 缓存 API 与…… NCache API

NCache 为从旧版 Microsoft 迁移的应用程序提供无缝过渡路径。 AppFabric 缓存生态系统。虽然 AppFabric 利用区域进行逻辑数据分组, NCache 它利用高性能的标签系统和多重缓存来实现卓越的可扩展性和数据隔离。本对比指南详细介绍了移植所需的 API 级映射。 AppFabric 逻辑 NCache,突出显示 NCache更高效的 CRUD 操作、简洁的事件回调和高级锁定机制——所有这些都保持了现代企业分布式系统所期望的性能标准。

AppFabric 缓存:获取缓存实例

在 AppFabric 缓存,用户必须创建一个 DataCacheFactoryConfiguration 提供一个 DataCacheFactory,由此他们可以获得一个缓存实例。在 NCache,配置由 NCache 管理中心或命令行工具。如果缓存正在运行并已初始化,以下命令将返回缓存的实例。

ICache cacheInstance = CacheManager.GetCache(cacheName);

在这种情况下有许多缓存管理功能可用。本节比较了 API 的一些重载,以简要了解与 NCache.

注意:

您的应用程序将从以下位置获取缓存名称 客户端.ncconf 文件,因此,请确保它作为部署的一部分存在。如果你没有 NCache 安装在您的客户端计算机上,您可以使用 客户端.ncconf 安装时将文件添加到您的应用程序项目中 NCache AppFabric 包装器 NuGet 包,用于配置缓存客户端以访问 NCache 簇。 如果你有 NCache 安装在您的计算机上,您可以在以下位置找到该文件 %NCHOME%\配置.

CRUD 操作

添加操作

  • AppFabric
  • NCache

In AppFabric 缓存,一个 Add 操作如下:

cacheInstance.Add(stringKey, stringValue);

In NCache,基本命令没有什么不同,但是当您在命令中指定区域时,必须执行以下操作:

cacheInstance.Add(stringKey, stringValue, regionName);

在这种情况下,使用以下命令可以实现与区域相同的功能:

regionNameasCacheInstance.Add(stringKey, stringValue);

您必须将该区域注册为标签 NCache。否则,您将无法使用上述命令。

获取操作

此 AppFabric 和 NCache Get 操作的语法相同。

// Retrieve object
Object object = cache.Get<Object>(key);

此 GetCacheItem 命令 AppFabric 和 NCache 也一样,与 NCache 有多个重载来过滤 CacheItem 回。

放置/插入操作

此 AppFabric Put 操作相当于 NCache's Insert 方法。最简单的重载 NCache 和 AppFabric 是一样的:

  • AppFabric
  • NCache
cacheInstance.Put(key, value);
cacheInstance.Insert(key, value);

删除操作

AppFabric 和 NCache 有类似的 Remove 除了返回类型之外的操作。在 AppFabric, a 的返回类型 Remove 功能是 Boolean,表示该项目是否已成功删除。在 NCache,返回类型为 object,确定与删除的键关联的对象值。这个功能的 NCache 类似于获取项目并将其从缓存中删除。

  • AppFabric
  • NCache
cacheInstance.Remove(key, dataCacheItemVersion);

In NCache,您可以使用删除或删除。如果客户端想要删除该项目而不获取该项目, NCache 提供 Delete 方法。

cacheInstance.Remove(key, cacheItemVersion);

cacheInstance.Delete(key, cacheItemVersion);

进一步获取操作

批量获取操作

  • AppFabric
  • NCache

AppFabric 有以下命令来获取缓存中的多个条目,返回一个列表 KeyValuePair.

cacheInstance.BulkGet(listOfKeys, region);

In NCache,批量命令返回一个 IDictionary of <string, object> 一对:

cacheInstance.GetBulk<T>(keys);

两个 API 的参数类型不同: AppFabric 需要一个列表,而 NCache 需要一个数组。

GetIfNewer 操作

此 GetIfNewer 的操作 AppFabric 和 NCache 是相同的。

通过所有标签获取对象

  • AppFabric
  • NCache

AppFabric 返回一个列表 KeyValuePair<string, object> 并列出 DataCacheTag items 用于获取添加到缓存中的具有相应标签的项目。

cacheInstance.GetObjectsByAllTags(listOfDataCacheTag, region);

NCache 有 GetByAllTags 命令来替代此功能。为了 NCache,以 Hashtable 返回,该函数接受一个数组 Tags 作为论据。

cacheInstance.GetByAllTags(arrayofTag);

GetObjectsByAnyTag 操作

同上, GetObjectsByAnyTag 在以下情况下返回一个列表 AppFabric 配备 Hashtable 在箱子 NCache.

按标签获取对象

此操作需要一个 DataCacheTag 在箱子 AppFabric 配备 Tag 在箱子 NCache.

获取区域内对象

如前面提到的, NCache 使用标签来表示区域。因此,要获取一个区域中的所有对象, NCache 返回一个枚举器,您可以对其进行迭代以获取缓存中存在的键值对。

在案件 AppFabric,以 DataCacheItemVersion 返回,而在这种情况下 NCache, CacheItemVersion 返回,它们本质上是相同的(参见 文件).

锁定和解锁操作

GetAndLock 操作

  • AppFabric
  • NCache

AppFabric GetAndLock 操作与 Get 操作的重载同义 NCache,这需要一个 LockHandle 引用作为参数。为了 AppFabric,该命令如下所示:

cacheInstance.GetAndLock(key, timeout, out lockHandle);

对于 NCache,同样的命令如下:

cacheInstance.Get(key, timeout, ref this.lockHandle);

PutAndUnlock 操作

  • AppFabric
  • NCache

AppFabric 在一个函数中提供此功能,其中锁定的项目在缓存中解锁并更新。该项目可以更新为新的 DataCacheTags 以及。 NCache 通过使用 Insert 函数的重载来实现此目的。一个简单的 AppFabric 命令将如下所示,其中插入项目 DataCacheTags.

cacheInstance.PutAndUnlock(key, value, lockHandle, dataCacheTags);

NCache 需要 CacheItem 作为参数,允许用户将标签直接添加到项目中 团队, 過期时间和 依赖。 该 NCache 重载是丰富的并提供更多的可定制性。

cacheInstance.Insert(key, cacheItem, lockHandle, acquireLockBool);

不比 AppFabric,它将一个对象作为键的新值, NCache 提供了更丰富的 CacheItem 在缓存中拥有一个包含更多元数据的项目,这有助于保持所有内容的组织和结构化。

解锁操作

AppFabric 和 NCache 在解锁缓存中存在的项目时共享相同的功能。两者都使用钥匙和锁句柄对象来解锁物品。

  • AppFabric
  • NCache
cacheInstance.Unlock(key, dataCacheLockHandle);
cacheInstance.Unlock(key, lockHandle);

重置对象超时操作

  • AppFabric
  • NCache

AppFabric 提供使用以下函数重置缓存中存在的项目的过期时间的功能:

cacheInstance.ResetObjectTimeout(key, newTimeout)

In NCache,客户端可以通过用新的值插入相同的值来完成相同的行为 绝对到期:

cacheInstance.Insert(key, value, absoluteExpiration, null, CacheItemPriority.Default)

当尝试在客户端维护与密钥关联的值时,这种方法可能看起来更乏味。 NCache 提供了更好的选择。客户可以简单地添加项目 滑动到期。这就像过期一样 AppFabric,但是当更新或从缓存中获取项目时,其超时会自动重置。因此,管理对象超时的需要由 NCache,使用户的工作更加轻松。

回调注册

AppFabric 允许客户端在缓存和项目级别注册事件通知。 NCache 提供类似的功能。不同之处在于用于两者的委托的布局。

  • AppFabric
  • NCache
public delegate void DataCacheNotificationCallback(string cacheName, string regionName, string key, DataCacheItemVersion version, DataCacheOperations cacheOperation, DataCacheNotificationDescriptor nd);
public delegate void CacheDataNotificationCallback(string key, CacheEventArg cacheEventArgs);

此 AppFabric delegate 很冗长,而 NCache 简洁明了。这 CacheEventArg 类包含所有必需的值,例如与键关联的值、元数据以及用户注册事件的任何其他信息。

为每个注册缓存级别回调定义如下:

  • AppFabric
  • NCache
cacheInstance.AddCacheLevelCallback(dataCacheOperations, dataCacheNotificationCallback);
cacheInstance.RegisterCacheDataNotification(cacheDataNotificationCallback, eventType, EventDataFilter.DataWithMetaData);

正如你可以看到, NCache 提供了更全面的机制来注册通知回调。另外,这里请注意 AppFabric 允许仅为一种事件注册一个回调,这意味着您可以为添加的项目设置一个回调,为更新的项目设置另一个回调。 NCache 允许用户添加具有多种类型事件的单个回调,如上面的以下修改后的命令:

cacheInstance.RegisterCacheDataNotification(cacheDataNotificationCallback, EventType.ItemAdded | EventType.ItemUpdated, EventDataFilter.DataWithMetaData);

NCache 还提供为单个项目注册多个回调。

NCache,但是,不提供对某些事件的替代方案 AppFabric,比如失败操作中的失败通知回调会触发事件,并执行用户委托的代码。

然而,用户可以通过使用提供的广泛功能来找到模仿相同行为的方法。 NCache.

参见

.NET: Alachisoft.NCache。客户 命名空间。
Java的: com.alachisoft.ncache.client 命名空间。
节点.js: 缓存 类。
Python: ncache.客户端 模块。

联系我们

联系电话

+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