目前正在使用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>
答案 0 :(得分:2)
你是对的。如果启用了本地缓存,则Web角色将使用本地RAM来保留缓存对象的“副本”。另外需要注意的是,因为它是一个副本,它甚至可能从主分布式缓存中变得陈旧和不同步。
现在,使用本地缓存的唯一原因是减少延迟,只有当您有数百个事务/秒才能产生重要影响时才会发生这种情况。您可以自己测试这种性能,您会发现可以忽略不计的差异。
我已经将几个大型系统部署到Azure ......两点: