在Asp.net中缓存?

时间:2009-12-14 04:18:50

标签: c# asp.net

我想知道缓存及其如何提高网站的性能,你能提供一个简单的例子来理解缓存。谢谢

5 个答案:

答案 0 :(得分:2)

以下是缓存链接MSDN

BeanSoftware

Dotnetperls

CodeProject

非常好的初学者文章 Exploring Caching

答案 1 :(得分:1)

我不确定我理解这个问题,但我会尝试。所有缓存都是存储数据的“便宜”的地方。我说廉价意味着它比“昂贵”的地点更快。例如,您可能将数据从驱动器上的文件(昂贵,慢速)缓存到内存中(便宜,快速),因此可以快速访问它。这就是你问的问题吗?

答案 2 :(得分:1)

对于ASP.Net应用程序来说,缓存可以有很多不同的含义,从浏览器一直传播到你的硬件,中间是IIS,应用程序,数据库。

我想你不了解应用程序和会话缓存。 您还可以使用IIS级别(在IIS 7中)和ASP.Net级别的输出缓存来缓存Web应用程序层。这两个缓存是您可以控制最多的缓存,并且在使用简单的同时为您提供了很好的好处。

另一方面是内存分布式缓存系统。除了memcache和Appfabric(velocity)之外,还有NCache或Oracle Coherence等商业解决方案。这种级别的缓存有望以更低的成本实现可扩展性。与此相比,扩展DB层的成本很高。您可能必须考虑网络带宽等方面。这种类型的缓存,特别是失效和到期可能很复杂。

然后在客户端Web代理层上进行缓存,可以通过缓存控制HTTP头控制。

最后,您拥有浏览器级缓存,查看状态和小数据的Cookie。

在数据库级别或SAN等基础架构层进行缓存对您的应用程序是透明的。

答案 3 :(得分:1)

使用ASP.NET缓存,您可以

  • 缓存页面的整个响应内容 您在页面中加入@Outputdirective

Link1

您可以使用以编程方式执行此操作 Response.Cache.SetExpires(DateTime.Now.AddSeconds(120));

您可以使用Usercontrol

中的OutputCache指令缓存部分页面

“启用输出缓存后,页面的初始HTTP GET请求 将其动态内容放在输出缓存中一段时间 指定。输出缓存满足后续的GET,HEAD或POST请求 该页面,直到您指定的时间到期。“ MSDN

  • 缓存应用程序数据 最简单的你可以: Cache [“key”] = DateTime.Now.ToString(); //或数据集

要检索 string cachedValue =(string)Cache [“key”]; 去除 Cache.Remove( “钥匙”);

Adding Items to the Cache

Retrieving Values of Cached Items

每个应用程序域都会创建缓存,而不是用户特定的。缓存可以轻松提高性能高达30%。

有用的SO链接

Caching Usercontrol

Caching

Cache vs Session

Output caching

答案 4 :(得分:0)

这是关于ASP.NET Cache类的教程。

它用于存储临时数据/对象。

http://msdn.microsoft.com/en-us/library/6hbbsfk6%28VS.80%29.aspx