我有几百个查找表,我想缓存在内存中。我已经将它们拖放到了Linq to sql实体映射器上,我想一定有一种更好的(通用的)方法来读取内存中的数据,而不是使用"HttpContext.Current.Cache“对象加载每个单独的表。
所有查找表都以"L_“开头,后跟内容类型的名称。
任何评论都将受到高度赞赏。
最好的
发布于 2017-01-09 21:52:23
10 GB的数据量太大,无法缓存。
使用.NET(可能是System.Cache命名空间)自己的缓存。如果你曾经为移动应用等编写过Web API,你将能够重用你的缓存代码。
ASP.NET缓存使用WeakLinks,只要需要内存,偶尔使用的缓存项就会被移除。
如果你想要分布式缓存或者你的缓存需要持久化,可以使用Redis。
将Sql Server自己的内存表与存储过程一起使用将比使用实体框架(但不是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
}
我希望这能有所帮助。
https://stackoverflow.com/questions/35957558
复制相似问题