【发布时间】:2010-12-26 07:32:52
【问题描述】:
我想了解缓存以及它如何提高网站的性能,您能否提供一个简单的示例来理解缓存。谢谢
【问题讨论】:
我想了解缓存以及它如何提高网站的性能,您能否提供一个简单的示例来理解缓存。谢谢
【问题讨论】:
【讨论】:
我不确定我是否理解这个问题,但我会尝试。所有缓存都是存储数据的“便宜”地方。我说便宜意味着它比“昂贵”的位置访问速度更快。例如,您可以将驱动器上的文件中的数据(昂贵、慢)缓存到内存中(便宜、快),以便可以快速访问它。你问的是这个吗?
【讨论】:
对于从浏览器到硬件的 ASP.Net 应用程序,缓存可以具有许多不同的含义,而 IIS、应用程序和数据库位于中间。
我认为您不想了解应用程序和会话缓存。 您还可以使用 IIS 级别(在 IIS 7 中)和 ASP.Net 级别的输出缓存在 Web 应用程序层进行缓存。这两个缓存是您可以控制最多的一个,在使用简单的同时给您带来很多好处。
另一方面是内存分布式缓存系统。除了 memcache 和 Appfabric(速度)之外,还有 NCache 或 Oracle Coherence 等商业解决方案。这种级别的缓存承诺以更便宜的成本实现可扩展性。与此相比,扩展数据库层的成本很高。不过,您可能必须考虑网络带宽等方面。这种类型的缓存,特别是失效和过期可能很复杂。
然后在客户端 Web 代理层进行缓存,可以通过缓存控制 HTTP 标头进行控制。
终于有了浏览器级别的缓存、视图状态和小数据的 cookie。
基础架构层(如数据库级别或 SAN 等)的缓存对您的应用程序是透明的。
【讨论】:
使用 ASP.NET 缓存,您可以
您可以使用编程方式执行此操作 Response.Cache.SetExpires(DateTime.Now.AddSeconds(120));
您可以使用 Usercontrol 中的 OutputCache 指令缓存页面的一部分
"启用输出缓存后,页面的初始 HTTP GET 请求 将其动态内容放置在输出缓存中的时间量 指定。输出缓存满足后续的 GET、HEAD 或 POST 请求 该页面直到您指定的时间到期为止。” MSDN
检索 string cachedValue = (string)Cache["key"]; 去除 Cache.Remove("key");
Retrieving Values of Cached Items
缓存是按应用程序域创建的,不是特定于用户的。缓存可以轻松将性能提高 30%。
有用的 SO 链接
【讨论】:
这是一个关于 ASP.NET Cache 类的教程。
它用于存储临时数据/对象。
http://msdn.microsoft.com/en-us/library/6hbbsfk6%28VS.80%29.aspx
【讨论】: