我有一个用ASP.NET MVC 5编写的应用程序。这会产生大量的数据库事务。
我没有专门用于报告的服务器从属设备,所以我需要在Entity框架中使用二级缓存来缓存报告生成的所有查询。
这里的想法是减少必须访问数据库的查询量,尤其是当多个用户尝试查看同一报表时。因此,如果我有5个人想要查看仪表板,则只有一个人会访问数据库,其余的将读取存储在缓存中的数据集。这应该可以提高报告性能,减少数据库锁定并提高应用程序性能。
是否可以在实体框架中使用Memcached或Redis,在执行查询一段时间后缓存数据集。当然,在执行查询之前,将在服务器上执行硬查询之前检查缓存中是否有现有数据集。
我遇到了NCache,这似乎正是我想要完成的事情,但遗憾的是价格昂贵。
答案 0 :(得分:1)
虽然你认为NCache与Redis或Memcache相比是“昂贵的”,但它有充分的理由是正确的。
您所使用的实体框架提供程序模型随NCache企业版一起提供。它将为您节省大量的DEV时间。有关详细信息,请允许我指出正确的文章
Entity Framework Caching with NCache
由于您将为产品付费,因此您可以通过更多方式和功能来增强应用程序响应时间。
要获取更多信息,请尝试Memcache Comparison和Redis Comparison
虽然如果你仍然坚持Memcache,那么Julie Lerman有一篇关于在实体框架中实现二级缓存的好文章。或者您可以使用来自github的任何其他开源实体框架模块并同样接受错误,例如EFRedis
完全披露:我为Alachisoft©工作