【发布时间】:2009-08-27 02:28:22
【问题描述】:
我应该为 .Net Web 应用程序使用什么缓存机制?一般来说,Memcached 似乎是 LAMP 堆栈和 Linux 的最佳选择,但我不太确定它是否是在 Windows 上运行的 .Net Web 应用程序的答案。我的要求是它是分布式的并且在 Windows 上运行。
【问题讨论】:
标签: .net asp.net caching memcached
我应该为 .Net Web 应用程序使用什么缓存机制?一般来说,Memcached 似乎是 LAMP 堆栈和 Linux 的最佳选择,但我不太确定它是否是在 Windows 上运行的 .Net Web 应用程序的答案。我的要求是它是分布式的并且在 Windows 上运行。
【问题讨论】:
标签: .net asp.net caching memcached
没有像 Windows 的 memcached 那样成熟的分布式缓存系统,但Velocity 是微软正在构建的分布式缓存系统,并且有一个测试版可供下载。
尽管我看到很多人在 Linux 上运行 memcached,并在他们的 ASP.net 代码中使用其中一个 .NET 客户端进行 memcached。
【讨论】:
查看ScaleOut StateServer - 它的主要开发目的是在网络农场场景中提供高性能、进程外、分布式会话管理,但它也适用于通用缓存。
它也是一个成熟的产品 - 但它不是免费的。主要好处是它是专门为与 ASP.NET / Windows 堆栈一起工作而设计的。
【讨论】:
ASP.NET 提供了两种开箱即用的缓存策略,即应用程序缓存和页面输出缓存。更多信息请查看ASP.NET Caching Overview:
通常一个应用程序可以增加 通过将数据存储在内存中来提高性能 经常访问并且 需要大量的处理时间 去创造。例如,如果您的 应用程序处理大量 使用复杂逻辑的数据,然后 将数据作为访问的报告返回 经常被用户使用,效率很高 避免每次重新创建报告 用户请求它的时间。同样,如果 您的应用程序包含一个页面 处理复杂的数据,但那是 只是不经常更新,它是 服务器重新创建效率低下 每个请求的那个页面。
帮助您增加应用 在这些情况下的表现, ASP.NET 使用两个提供缓存 基本的缓存机制。第一个是 应用程序缓存,它允许您 缓存您生成的数据,例如 DataSet 或自定义报表业务 目的。二是页面输出 缓存,保存输出 页面处理并重用输出 而不是重新处理页面时 用户再次请求该页面。
【讨论】: