在Local Cache上使用基于通知的失效时,ttlValue
超时仍然会使缓存项失效,从而在下一个请求时强制从缓存集群中获取。
例如,在下面的配置中,项目将在 300 秒后超时,但也会每 60 秒检查一次集群上的失效通知(例如,如果它们被删除):
<dataCacheClient name="default">
<localCache isEnabled="true" sync="NotificationBased" objectCount="100000" ttlValue="300" />
<clientNotification pollInterval="60" />
</dataCacheClient>
问题:
我有一组不可变的对象——即它们不会改变。这意味着他们永远不需要基于超时的失效来“刷新”自己。
这实质上意味着不可变对象将不必要地从本地缓存中删除。如果这些项目很多,则可能会出现明显的性能下降,尤其是在需要读取数千个项目时。
在构造函数中将其设置为零DataCacheLocalCacheProperties
时,出现以下异常:
An exception of type 'System.ArgumentException' occurred in Microsoft.ApplicationServer.Caching.Client.dll but was not handled in user code
Additional information: Time-out should be a positive value.
另一个选项我必须设置一个无法访问的号码。
为什么不允许我们使用零超时的本地缓存?
我正在使用 Azure 角色内缓存(托管)。