在内存中缓存查找表的最佳方法

时间:2016-03-12 12:20:04

标签: c# linq caching

我有几百个查询表,我想在内存中缓存。 我已经将它们拖放到Linq到sql实体映射器。我想必须有一种更好的(Genric)方法来读取内存中的数据,而不是使用" HttpContext.Current.Cache"来加载每个单独的表。对象。
所有查找表都以" L _"开头。后跟内容类型的名称。

任何评论都将受到高度赞赏。

最佳

1 个答案:

答案 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 
} 

我希望这会有所帮助。