更新:我还发现了ncache,它似乎很有用,并且了解到stackoverflow使用redis进行缓存。我也接触过memcached,看起来是更好的选择。我找到了this,但我需要知道如何缓存我的一些LINQ查询并有效地使用它们。我在asp.net mvc中发现了输出缓存,还有其他的缓存方法吗? 我是一个新手,以前从未使用过缓存,所以如果有人能指导我正确的方向,我会非常感激。主要想知道在什么情况下需要缓存,以及如何在asp.net mvc中进行缓存操作。
根据我的经验,应用级缓存很少是解决性能问题的正确方法,几乎总会引起更多问题。在进行任何缓存之前,您应该首先:(i)分析您的应用程序和查询以查看是否可以直接解决它们(例如,查询模式过于宽泛(获取未显示的列)或过于深入(例如获取比您显示的更多行),太频繁(懒加载可能会导致您需要的往返次数更多),太昂贵(不良表设计可能意味着您需要更多连接),或者表本身可能没有正确索引;(ii)全面审视您的网站和用户体验,看看如何提高感知性能(例如,在静态内容上设置适当的浏览器级缓存标头)。使用AJAX和类似jQGrid的分页网格视图可能会消除许多数据库访问,因为页面其他内容不会改变。在解决了真正的问题后,您可能会考虑缓存。但在这之前,请做一个简单的计算:升级服务器的成本与实施缓存并跟踪奇怪的陈旧缓存问题所需的开发和测试时间相比如何?有时只需升级即可更省钱...