gpt4 book ai didi

c# - 在缓存应用程序 block 中配置缓存管理器过期时间

转载 作者:行者123 更新时间:2023-11-30 20:55:43 25 4
gpt4 key购买 nike

我在我的应用程序上使用缓存应用程序 block 。配置文件如下所示:

<cachingConfiguration defaultCacheManager="Cache Manager">
<cacheManagers>
<add name="ParamCache" type="Microsoft.Practices.EnterpriseLibrary.Caching.CacheManager, Microsoft.Practices.EnterpriseLibrary.Caching, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" expirationPollFrequencyInSeconds="60" maximumElementsInCacheBeforeScavenging="1000" numberToRemoveWhenScavenging="10" backingStoreName="NullBackingStore"/>
</cacheManagers>
<backingStores>
<add type="Microsoft.Practices.EnterpriseLibrary.Caching.BackingStoreImplementations.NullBackingStore, Microsoft.Practices.EnterpriseLibrary.Caching, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" name="NullBackingStore"/>
</backingStores>
</cachingConfiguration>

虽然 expirationPollFrequencyInSeconds 属性将控制存储在缓存中的值的到期时间,因此如果我尝试获取缓存存储 60 秒或更长时间的值,它将被获取来自数据库而不是缓存。但是,通过这种配置,我看到该值仍在从缓存中获取大约 5 分钟,然后才从数据库中获取更新后的值。

我错过了什么?

最佳答案

发现问题。expirationPollFrequencyInSeconds 参数不会影响缓存中的项目过期时间,只会影响过期项目的清除频率。

实际上,过期时间是在将项目添加到缓存时设置的,在我的例子中它设置为 5 分钟...

关于c# - 在缓存应用程序 block 中配置缓存管理器过期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18104420/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com