如何在Web服务器的内存中为ASP.NET MVC Web应用程序缓存图像?

时间:2008-10-11 21:28:00

标签: asp.net asp.net-mvc caching

我正在使用ASP.NET MVC处理包含许多图像的Web应用程序。我希望能够将图像缓存在内存中以提高性能,但我想知道最好的方法是什么。

1)可以从URL访问图像,例如http://www.site.com/album/1.jpg。如何将图像存储在内存中?他们会以某种形式的记忆流吗?

2)如何从内存中访问图像并发送到网页?现在,网页将使用图像URL直接将图像嵌入标签中。

谢谢!

4 个答案:

答案 0 :(得分:2)

对于静态资源,Web服务器和下游缓存不会处理此问题吗?不确定有多少性能提升,但对应用程序或设置一无所知我可能是错的。

为了实现我设置一个带有图像文件名的页面,并从磁盘或内存缓存中的asp.net提供它。

答案 1 :(得分:2)

如果图像只是磁盘上的静态文件,那么Beepcake是正确的,IIS已经在缓存经常使用的图像并从内存中提供它们。使用单独的缓存服务器不应该比从内存提供映像的IIS更快 - 它更多地与可伸缩性有关。一旦拥有一个大型服务器场,就意味着你有一组服务器只处理你的代码和一组只处理静态图像的服务器。此外,如果您有一个服务器的内容太多而无法缓存它,那么您可以路由请求,以便您的十个服务器中的每个服务器缓存不同的10%的内容。这应该比让每个服务器缓存相同最常用的10%内容要好得多。

答案 2 :(得分:0)

感谢您的回复。我想我在想错误的方向。我刚刚发现Flickr正在使用Squid来缓存图像。

答案 3 :(得分:0)

如果你想要真正好的表现,我建议使用Amazon CloudFront。边缘缓存将为您提供比内存缓存更好的性能,而CloudFront运行nginx,这在静态文件(尤其是)中明显优于IIS。

设置边缘缓存非常简单 - 您可以登录,并使用域代替您自己的域来使用图像URL。