NHibernate 的 syscache 到期如何工作?
如果我将过期时间设置为 10 分钟,并且每分钟添加一个实体,那么当前 10 分钟(应用程序启动后)结束时,是全部删除 10 个实体,还是只删除第一个?
是从缓存中完全删除所有数据,还是每个实体都有时间戳?
NHibernate 的 syscache 到期如何工作?
如果我将过期时间设置为 10 分钟,并且每分钟添加一个实体,那么当前 10 分钟(应用程序启动后)结束时,是全部删除 10 个实体,还是只删除第一个?
是从缓存中完全删除所有数据,还是每个实体都有时间戳?
我刚刚查看了 SysCache 源代码,这一行清楚地表明它是绝对过期的:
cache.Add(
cacheKey,
new DictionaryEntry(key, value),
new CacheDependency(null, new[] {rootCacheKey}),
DateTime.Now.Add(expiration),
System.Web.Caching.Cache.NoSlidingExpiration,
priority,
null);
正如 Rippo 所指出的,滑动到期。
http://docs.huihoo.com/hibernate/nhibernate-reference-1.2.0/caches.html