0

当前使用 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>

4

1 回答 1

2

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

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

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

  • 目前使用专用角色的缓存系统已经足够好了。如果放在同一个云服务中,延迟最小,性能非常好。(它比 Microsoft 弃用的第一个缓存版本要好得多)
  • 如果您想要最快的缓存,预览中有一个新的分布式缓存(截至 2013 年 11 月 7 日)。它具有超低延迟:读/写为 1 毫秒至 1.2 毫秒……速度极快,并且不存在本地缓存优势。它处于预览模式,但所有缓存层都应视为易失性。即使没有 SLA/可能会更频繁地下降……您的系统也可以围绕它进行架构。
于 2013-11-07T22:32:21.243 回答