哪些Sitecore缓存受Caching.ScavengeInterval影响,以及如何?

Jam*_*ord 4 caching sitecore sitecore7

查看web.config中的缓存设置,我遇到了Caching.ScavengeInterval条目:

<!--  SCAVENGE INTERVAL
Determines how often scavengable caches are scavenged.
Default value: 3 minutes.
-->
<setting name="Caching.ScavengeInterval" value="00:03:00" />
Run Code Online (Sandbox Code Playgroud)

它会影响哪些缓存,并且Sitecore内置了自动缓存清理功能吗?Cache清理在Sitecore上下文中做了什么?

我对它是否会影响IsUserInRole缓存特别感兴趣.

jam*_*kam 6

这不会直接回答你的问题,但希望它会推动正确的方向.

您可以使用Sitecore Rocks查看当前缓存,有一列可以告诉您哪些缓存被标记为可扫描:

http://www.sitecore.net/Community/Technical-Blogs/Trevor-Campbell/Posts/2013/02/28-Days-of-Sitecore-Rocks-Manage-Part-3.aspx

在Sitecore的默认安装上,它仅影响GeoIp和ClientDataStore.不幸:

客户端数据存储高速缓存存储有关每个经过身份验证的用户的信息,例如用户名或其他用户属性.

Sitecore缓存配置指南 - 第20页

这是您的需求的错误缓存,您感兴趣的IsUserInRoleCache是标记为Scavengable:false

您可以深入了解自己,使用dotPeek反编译器并查看以下类Sitecore.Kernel.dll:

  • Sitecore.Caching.Cache
  • Sitecore.Caching.CacheManager
  • Sitecore.Configuration.ClientDataStore