我有几百个查找表,我想缓存在内存中。我已经将它们拖放到 Linq to sql 实体映射器上。我想一定有一种更好的(通用)方法来读取内存中的数据,而不是使用"HttpContext.Current.Cache"对象加载每个单独的表。
所有查找表都以"L_"开头,后跟内容类型的名称。
任何评论将不胜感激。
最好
10 GB 的数据太多,无法缓存。
用。NET(可能是System.Cache命名空间)自己的缓存。如果您曾经为移动应用程序等编写 Web API,您将能够重用您的缓存代码。
ASP.NET 缓存使用弱链接,每当需要内存时,您偶尔使用的缓存项将被删除。
如果需要分布式缓存或需要缓存持久性,请使用 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
}
我希望这会有所帮助。