这些是我为缓存主题考虑的项目:
MemCached Win32 Velocity .net Cache Enterprise Library 缓存应用程序块
MemCached Win32:直到最近我一直在使用 MemCached Win32。这类似于网络场(许多服务器提供相同的内容以实现高可用性),但它是一个缓存场。这意味着如果您没有足够的资源来扩大规模,您最初可以将它安装在您的 Web 服务器上。然后,随着您的发展,您可以水平扩展(更多服务器)或垂直扩展(更多硬件)。这是一个从原始 MemCached 移植到 Windows 上的产品。该产品已广泛用于高流量站点。 http://lineofthought.com/tools/memcached
Velocity:这是微软对 MemCached 等产品的回答。MemCached 已经出来很长时间了,Velocity 处于 CTP 模式。我必须说,从我目前所阅读的内容来看,这款产品一旦推出,肯定会让我大吃一惊。但是我不能让自己在零跟踪记录的 CTP 产品上运行大型生产项目。我已经开始玩它了,因为一旦它获得动力,MemCached 甚至无法与那些锁定在 Windows 世界中的人相比! http://blogs.msdn.com/velocity/
.NET 缓存: 没有理由打折标准 .NET 缓存。它是内置的,可以免费使用,无需(主要)设置。它通过提供将项目存储在本地内存、单一状态服务器或集中式数据库中的机制来提供灵活性。当您需要多个状态服务器(内存中的缓存)并且不想使用慢速数据库来保存缓存时,Velocity 介入的地方。
企业应用程序块:我远离所有企业应用程序块。它们是重型框架,提供的功能超出了我通常的要求!只要您记得包装所有涉及到不属于您自己的代码的内容并遵循简单的编码规则,就可以坚持使用其他任何一种方法!(当然只是我的看法——MySpace 尽可能多地利用企业应用程序块!)
您不必预先选择! 我通常会创建一个缓存包装器,在我的代码中与 Get、Set、Exists、Remove、ListKeys 等方法进行通信。然后它指向可以指向 MemCached、Velocity 或 .NET 的底层缓存抽象级别缓存。我使用 StructureMap(或选择另一个 IoC 容器)来注入我想在给定环境中使用哪种形式的缓存。在我的本地开发框中,我可能会在会话中使用 .NET 缓存。在生产中,我通常使用 MemCached Win 32。但无论它是如何设置的,您都可以轻松地交换东西以尝试每个系统,看看哪种系统最适合您。您只需要确保您的应用程序尽可能少地了解事物的缓存方式!一旦这个抽象层到位,您就可以对所有进出缓存的数据运行压缩算法 (gzip),这将允许您在缓存中存储 10 倍的数据量。-透明地。
如果您有兴趣,我会在我的书中介绍 .NET 缓存、MemCached Win32、StructureMap 和适当的抽象!
ASP.NET 3.5 社交网络(http://www.amazon.com/ASP-NET-3-5-Social-Networking-Enterprise-ready/dp/1847194788/ref=sr_1_1?ie=UTF8&s=books&qid=1225408005&sr=8 -1 ) 安德鲁·西默 www.andrewsiemer.com blog.andrewsiemer.com www.socialnetworkingin.net
更新
更改了列出使用 memcached 的站点的链接。谢谢大卫注意到它坏了!