C# 绝对过期缓存对象-可以手动删除它吗?

C# 绝对过期缓存对象-可以手动删除它吗?,c#,caching,C#,Caching,在过去的几个小时里,我一直在为这件事发愁 我有一个缓存对象 HttpRuntime.Cache.Insert("Members", AllMembersList, null, DateTime.Now.AddHours(1), TimeSpan.Zero); HttpRuntime.Cache.Remove("Members"); 当我尝试清除缓存对象时 HttpRuntime.Cache.Insert("Members", AllMembersList, null, DateTime.No

在过去的几个小时里,我一直在为这件事发愁

我有一个缓存对象

HttpRuntime.Cache.Insert("Members", AllMembersList, null, DateTime.Now.AddHours(1), TimeSpan.Zero);
HttpRuntime.Cache.Remove("Members");
当我尝试清除缓存对象时

HttpRuntime.Cache.Insert("Members", AllMembersList, null, DateTime.Now.AddHours(1), TimeSpan.Zero);
HttpRuntime.Cache.Remove("Members");
它的值不会改变,直到1小时结束或者我重置服务器

我的问题。。对于设置为绝对过期的缓存对象,我是否可以手动清除它,或者它是否会存在整整一小时

我希望这个对象能持续一个小时,但取决于程序的执行情况,我可以清除它,这样它就会包含新的数据

非常感谢您的帮助


truegilly

删除方法应该可以很好地解决这个问题

是否确定您正在正确调用
Remove
,并且没有其他代码将项目重新插入缓存

来自

项目实际从何时刷新 缓存?

大多数缓存框架只会 从缓存中删除过期的项目 当系统资源稀缺或 当缓存被引用时。这 表示具有 由于绝对或滑动而过期 过期日期不能从列表中删除 缓存,直到将来某个可能 实际上,在进入之后很好 过期了

这样做是为了提高性能。这个 缓存框架通常使用 查找 过期条目并将其删除。这 通常在缓存被调用时调用 而不是在项目 实际上已经过期了。这允许缓存 框架,以避免 不断跟踪基于时间的事件以 知道何时从列表中删除项目 缓存


您可以尝试将缓存值设置为null。

感谢您的回复,我仍然有这个问题。是不是。。1-我试图从我的网站admin.mysite.co.uk的子域中清除缓存,2我使用LINQ数据上下文而不是直接数据库查询?