1

(1) 我想知道我是否在我的 AppFabric 缓存中使用了区域,这些区域是否可以存在于本地缓存中?还是区域只存在于集群上?

(2) 作为一个单独的问题,我如何判断我的数据是来自集群还是来自本地缓存?是否有某种 AppFabric 工具可用于分析数据的来源?

我正在使用代码中的配置来设置我的本地缓存属性,以将我的项目放入本地缓存中,就像这样

localCacheConfig = new DataCacheLocalCacheProperties(10000, localTimeout, DataCacheLocalCacheInvalidationPolicy.TimeoutBased);

// Setup the DataCacheFactory configuration.
DataCacheFactoryConfiguration factoryConfig = new DataCacheFactoryConfiguration();
factoryConfig.Servers = servers;
factoryConfig.LocalCacheProperties = localCacheConfig;

//code to put items in cache....etc

我是否需要在“获取”上做任何特别的事情,或者它是否足够聪明,可以从本地缓存中获取它(如果它存在的话)?

4

3 回答 3

2

Region 是 AppFabric 中的一个逻辑概念。它将允许您按标签查询项目,但项目将仅存储在一个主机中(有限分布和高可用性)。

本地缓存不绑定到区域。它只是您对缓存集群的最新调用的本地副本。本地缓存在客户端启用,这意味着您可以根据需要避免它。

本地缓存中对象的生命周期取决于几个因素,例如本地缓存中的最大对象数和失效策略(超时或通知)。

您无法知道数据是来自本地缓存还是分布式缓存。这就是为什么推荐使用本地缓存作为参考数据的原因。

于 2012-12-19T08:01:01.703 回答
1

1.Regions在本地缓存中不存在,Regions只针对缓存集群。

2.您可以通过在Appfabric powershell控制台中执行以下命令来获取特定命名缓存的统计信息,

get-cachestatistics <CacheName>

它为您提供了一个具有ReadRequestCount的结果集,如果请求进入本地缓存,则此计数不会因特定请求而增加。

通过这种方式,您可以检查本地缓存是否正常工作。

于 2013-08-14T12:20:54.327 回答
0

区域不能存在于本地缓存中,它们只存在于集群的缓存中。

因为本地缓存是可选的,所以客户端代码应该完全不知道缓存项是来自集群还是来自本地缓存。为了实现这一点,当请求的项目在本地缓存中时,它将从那里返回(避免对集群的跨服务器调用)。

于 2012-12-05T13:13:31.980 回答