Tag: httpruntime.cache

如何在HttpRuntime.Cache中获取对象的大小?

我目前在ASP.NET HttpRuntime.Cache中存储了许多不同类型的对象,我想知道是否有办法弄清楚每个对象有多大?

50GB HttpRuntime.Cache持久性可能吗?

我们有一个ASP.NET 4.0应用程序,它从数据库中提取一个复杂的数据结构,需要12个多小时才能进入内存数据结构(后来存储在HttpRuntime.Cache中)。 数据结构的大小正在迅速增加,如果应用程序重新启动,我们无法继续等待12个多小时才能将其存入内存。 如果要更改web.config或Web应用程序中导致重新启动的任何代码,这是一个主要问题 – 这意味着在使用应用程序之前需要等待很长时间,并阻碍开发或更新部署。 数据结构必须在内存中以使网站可用的速度工作。 在内存数据库中,例如memcache或Redis,与HttpRuntime.Cache相比速度较慢,并且在我们的情况下不起作用(在内存中db必须序列化put / get,加上它们不能互相引用,它们使用的是查找键 – 降低性能,加上大量密钥,性能迅速下降)。 性能是必须的。 我们想要做的是在应用程序结束之前(重启时)快速将HttpRuntime.Cache转储到磁盘,并且能够在应用程序再次启动时立即将其加载回来(希望在几分钟内而不是12小时或几天) 。 内存结构大约为50GB。 这个问题有方法解决吗?

以只读方式读取HttpRuntime.Cache项

我正在使用HttpRuntime.Cache来存储将在会话中频繁访问的对象列表。 我使用以下代码行从缓存中获取项目: List _chartData = (List)HttpRuntime.Cache.Get(“rollingMonth”); 但是,不幸的是,当我更新_chartData时 ,它也会更新缓存的项目。 我怎样才能简单地获得缓存项目的副本?