更新:我还发现了
ncache看起来很有用,也来到了
know,stackoverflow使用
redis进行缓存.我也遇到了
memcached,似乎是更好的选择之一.
我找到了this,但我需要知道有什么方法可以缓存一些LINQ查询并有效地使用它们.我在asp.net mvc中找到Output cache还有其他方法可以进行缓存吗?
我是一个新手,从来没有做过缓存,所以如果有人能指出我在正确的方向,我会很感激吗?主要是我想回答什么时候需要缓存以及如何在asp.net mvc中进行缓存?
最佳答案 根据我的经验,应用程序级缓存很少是修复性能问题的正确方法,它几乎总是会导致比解决更多的问题.
在您开始任何缓存之前,您应首先:
(i)分析您的应用程序及其所做的查询,以查看您是否可以直接解决它们(例如,查询模式太宽(获取未显示的列)或太深(例如,获取的行多于您显示的行)频繁(延迟加载可能导致比你需要更多的往返),太昂贵(糟糕的表设计可能意味着比你需要更多的连接),或者表本身可能没有正确索引;
(ii)全面了解您的网站和用户体验,了解如何提高感知性能(例如,在静态内容上设置适当的浏览器级缓存缓存标头).使用AJAX可能和jQGrid这样的分页网格视图可能会消除许多数据库访问,而用户正在分页记录,因为页面内容的其余部分没有变化.
在您用尽修复真正的问题之后,您可以随时准备考虑缓存.
但在此之前,做一个简单的计算:升级服务器的成本与开发和测试时间相比,您将花费多少来实现缓存并跟踪奇怪的过时缓存问题?有时升级更便宜…