以下是dataCacheClient
中的web.config
条目:
<dataCacheClients>
<dataCacheClient isCompressionEnabled="true" name="default">
<autoDiscover isEnabled="true" identifier="MyRoleName" />
<localCache isEnabled="true" sync="NotificationBased" objectCount="100" ttlValue="3000" />
<clientNotification pollInterval="300" />
<transportProperties maxBufferSize="1073741824" maxBufferPoolSize="1073741824" />
</dataCacheClient>
</dataCacheClients>
以上配置将在MyRoleName
角色上使用共同缓存。除了共置缓存之外,我还表示我还想使用localCache
。我对此仍感到有点困惑。
有人可以验证我的假设:
pollInterval
)的更改。如果存在差异,则本地缓存将使自己无效,直到下一次共同定位读取。ttlValue
)后自动失效,这将强制刷新下一个共同定位的缓存读取。在角色缓存设置中,我有以下配置:
由于
答案 0 :(得分:1)
起初我也对localCache如何使用共存缓存感到困惑。但是当我意识到localCache只需要专用缓存时,当你有单独的缓存服务器时。在这种情况下,localCache减少了缓存暂停时间,因为它也存储在所有实例内存中,并且只是通过通知进行同步。
如果使用共存缓存,缓存已存储在实例内存中,因此它已经是localCache。它在所有实例之间自动同步。
类似,如果您有多个专用缓存角色,则不必在它们之间同步数据。
完全确定我已经使用Azure Emulator进行了简单的测试。我用两个实例开始了它。并在第一个实例中添加了对象缓存,然后检查它是否存在于第二个实例,它就在那里。
答案 1 :(得分:1)
将本地缓存视为仅适用于客户端的内容。这将为您提供清晰的视角。您正在经常/最近使用的对象的客户端维护本地副本。 客户端可以在任何地方 - onPremise,天蓝色,甚至在不同的部署中。 在通知间隔中提到的每个x时间间隔中,它将轮询服务器或主缓存,并查看是否有任何通知可用于本地缓存中的对象 是的,ttl值是刷新本地缓存的时间