【问题标题】:AppFabric Regions and Local CacheAppFabric 区域和本地缓存
【发布时间】:2012-12-05 04:55:47
【问题描述】:

(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

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

【问题讨论】:

    标签: appfabric appfabric-cache


    【解决方案1】:

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

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

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

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

    【讨论】:

      【解决方案2】:

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

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

      get-cachestatistics <CacheName>
      

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

      通过这种方式你可以检查本地缓存的工作情况。

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

        • 当然 - 但我如何检查它是否确实工作正常并来自本地缓存?
        • 另外,关于区域,我相信如果我们不指定区域,那么项目将进入默认区域。如果它们进入默认区域,那么如果区域不能存在于本地缓存中,它们怎么可能存在于本地缓存中?
        • 如果我将我的项目添加到一个区域会发生什么,该区域存在于分布式缓存中。单个项目是否仍然存在于没有区域的本地缓存中?
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-01-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-02-21
        相关资源
        最近更新 更多