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 Get 操作的语法相同。
// Retrieve object
Object object = cache.Get<Object>(key);
此 GetCacheItem 命令 AppFabric 和 NCache 也一样,与 NCache 有多个重载来过滤 CacheItem 回。
放置/插入操作
此 AppFabric Put 操作相当于 NCache's Insert 方法。最简单的重载 NCache 和 AppFabric 是一样的:
删除操作
AppFabric 和 NCache 有类似的 Remove 除了返回类型之外的操作。在 AppFabric, a 的返回类型 Remove 功能是 Boolean,表示该项目是否已成功删除。在 NCache,返回类型为 object,确定与删除的键关联的对象值。这个功能的 NCache 类似于获取项目并将其从缓存中删除。
进一步获取操作
批量获取操作
AppFabric 有以下命令来获取缓存中的多个条目,返回一个列表 KeyValuePair.
cacheInstance.BulkGet(listOfKeys, region);
两个 API 的参数类型不同: AppFabric 需要一个列表,而 NCache 需要一个数组。
GetIfNewer 操作
此 GetIfNewer 的操作 AppFabric 和 NCache 是相同的。
通过所有标签获取对象
AppFabric 返回一个列表 KeyValuePair<string, object> 并列出 DataCacheTag items 用于获取添加到缓存中的具有相应标签的项目。
cacheInstance.GetObjectsByAllTags(listOfDataCacheTag, region);
GetObjectsByAnyTag 操作
同上, GetObjectsByAnyTag 在以下情况下返回一个列表 AppFabric 配备 Hashtable 在箱子 NCache.
按标签获取对象
此操作需要一个 DataCacheTag 在箱子 AppFabric 配备 Tag 在箱子 NCache.
获取区域内对象
如前面提到的, NCache 使用标签来表示区域。因此,要获取一个区域中的所有对象, NCache 返回一个枚举器,您可以对其进行迭代以获取缓存中存在的键值对。
在案件 AppFabric,以 DataCacheItemVersion 返回,而在这种情况下 NCache, CacheItemVersion 返回,它们本质上是相同的(参见 文件).
锁定和解锁操作
GetAndLock 操作
AppFabric GetAndLock 操作与 Get 操作的重载同义 NCache,这需要一个 LockHandle 引用作为参数。为了 AppFabric,该命令如下所示:
cacheInstance.GetAndLock(key, timeout, out lockHandle);
PutAndUnlock 操作
AppFabric 在一个函数中提供此功能,其中锁定的项目在缓存中解锁并更新。该项目可以更新为新的 DataCacheTags 以及。 NCache 通过使用 Insert 函数的重载来实现此目的。一个简单的 AppFabric 命令将如下所示,其中插入项目 DataCacheTags.
cacheInstance.PutAndUnlock(key, value, lockHandle, dataCacheTags);
解锁操作
AppFabric 和 NCache 在解锁缓存中存在的项目时共享相同的功能。两者都使用钥匙和锁句柄对象来解锁物品。
重置对象超时操作
AppFabric 提供使用以下函数重置缓存中存在的项目的过期时间的功能:
cacheInstance.ResetObjectTimeout(key, newTimeout)
当尝试在客户端维护与密钥关联的值时,这种方法可能看起来更乏味。 NCache 提供了更好的选择。客户可以简单地添加项目 滑动到期。这就像过期一样 AppFabric,但是当更新或从缓存中获取项目时,其超时会自动重置。因此,管理对象超时的需要由 NCache,使用户的工作更加轻松。
回调注册
AppFabric 允许客户端在缓存和项目级别注册事件通知。 NCache 提供类似的功能。不同之处在于用于两者的委托的布局。
public delegate void DataCacheNotificationCallback(string cacheName, string regionName, string key, DataCacheItemVersion version, DataCacheOperations cacheOperation, DataCacheNotificationDescriptor nd);
此 AppFabric delegate 很冗长,而 NCache 简洁明了。这 CacheEventArg 类包含所有必需的值,例如与键关联的值、元数据以及用户注册事件的任何其他信息。
为每个注册缓存级别回调定义如下:
cacheInstance.AddCacheLevelCallback(dataCacheOperations, dataCacheNotificationCallback);
参见
.NET: Alachisoft.NCache。客户 命名空间。
Java的: com.alachisoft.ncache.client 命名空间。
节点.js: 缓存 类。
Python: ncache.客户端 模块。