我有几百个查询表,我想在内存中缓存。
我已经将它们拖放到Linq到sql实体映射器。我想必须有一种更好的(Genric)方法来读取内存中的数据,而不是使用" HttpContext.Current.Cache"来加载每个单独的表。对象。
所有查找表都以" L _"开头。后跟内容类型的名称。
任何评论都将受到高度赞赏。
最佳
答案 0 :(得分:0)
10 GB是要缓存的太多数据。
使用.NET(可能是System.Cache命名空间)自己的缓存。如果您为移动应用程序等编写Web API,则可以重用缓存代码。
ASP.NET缓存使用WeakLinks,只要需要内存,就会删除偶尔使用的缓存项。
如果您需要分布式缓存或需要缓存持久性,请使用Redis。
使用Sql Server自己的In存储过程的内存表比使用Entity Framework(但不是Redis)更好。
编写这样的服务层代码(此代码也可以通过Web API重用)
private IList<TableName> GetAll()
{
//find in cache and return
//load data if upper step doesn't find data in cache
// store data in cache for this specific lookup
// return data
}
我希望这会有所帮助。