设置azure localcache的影响是启用的

时间:2013-11-07 09:31:28

标签: caching azure azure-web-roles

目前正在使用Windows Azure缓存。

要启用本地缓存,请设置以下内容

<localCache isEnabled="true" sync="TimeoutBased" objectCount="100000" ttlValue="10" />

根据msdn - 启用本地缓存时,缓存客户端在本地存储对该对象的引用。这使对象在客户端应用程序的内存中保持活动状态。

我的项目在2个Web角色实例上运行。这是否意味着一旦我设置了这一行,它就会使用 Web角色的RAM 作为本地缓存,当它找不到对象时,会转到Windows Azure缓存?我不希望Web角色的RAM因此而陷入困境,因为我没有看到指定localCache大小的方法。任何建议将不胜感激。

我的完整缓存配置如下所示

<dataCacheClients>
<dataCacheClient name="default">
  <autoDiscover isEnabled="true" identifier="windowsAzure.mycacheurl.com" />
  <localCache isEnabled="true" sync="TimeoutBased" objectCount="100000" ttlValue="10" />
  <securityProperties mode="Message" sslEnabled="false">
    <messageSecurity authorizationInfo="xxxjdkj" />
  </securityProperties>
</dataCacheClient>

1 个答案:

答案 0 :(得分:2)

你是对的。如果启用了本地缓存,则Web角色将使用本地RAM来保留缓存对象的“副本”。另外需要注意的是,因为它是一个副本,它甚至可能从主分布式缓存中变得陈旧和不同步。

现在,使用本地缓存的唯一原因是减少延迟,只有当您有数百个事务/秒才能产生重要影响时才会发生这种情况。您可以自己测试这种性能,您会发现可以忽略不计的差异。

我已经将几个大型系统部署到Azure ......两点:

  • 当前使用专用角色的Cache系统已经足够了。如果将其置于同一个Cloud Service中,则延迟最小且性能非常好。 (它比微软弃用的第一版缓存更好)
  • 如果您想要最快的缓存,预览中会有一个新的分布式缓存(截至2013年7月7日)。它具有超低延迟:1ms-1.2ms用于读/写......它速度极快,并且不存在本地缓存优势。它处于预览模式,但应将所有缓存层视为易失性。即使没有SLA /可能会更频繁地下降......你的系统可以围绕它构建。