为什么我存储在缓存中的数据已在 asp.net 中删除

why data i stored in cache has been removed in asp.net

我决定将我的数据(例如国家、州、城市、书籍和其他数据列表)存储在缓存中以提高我网站的速度,但我发现当缓存项计数为 10 且 Cache.EffectivePercentagePhysicalMemoryLimit是 98 我将我的数据添加到缓存,但其他数据将被删除。

我将缓存过期时间设置为 20 min.how 我应该设置缓存大小吗?我该如何处理这个问题?为什么我存储在缓存中的数据已在 asp.net

中删除

在下面的代码中,我设置了一个断点,方法 return 一个空列表,当我检查国家和州等其他数据时,它们已从缓存中删除

var cahpters= CacheData.Data.Chapter.list(bookid.ToString());

why data i stored in cache has been removed in asp.net

在以下情况下可以显式地从缓存中取出对象:

  • 显式调用 Remove
  • 数据过期
  • 内存消耗
    • 低优先级缓存数据将首先被删除

很可能在你的情况下你有 巨大的内存消耗 所以 ASP.NET 决定通过从缓存中删除你的项目来节省内存。

您也可以注册删除通知(包括原因)。在此处查看更多相关信息:https://msdn.microsoft.com/en-us/library/7kxdx246%28v=vs.140%29.aspx