2008-10-11 22 views
1

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

1)图片均来自URL访问,像http://www.site.com/album/1.jpg。图像如何存储在内存中?他们是否会采用记忆流的形式?

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

谢谢!

回答

2

惯于网络服务器和下游缓存无论如何处理这个静态资源?不确定会有很多性能上的提升,但对应用或设置一无所知我可能是错的。

要实现我最好设置夺走了图像文件名,要么从磁盘或内存中缓存asp.net担任它的页面。

0

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

2

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

0

如果你想真正好的表现,我建议亚马逊的CloudFront的。边缘缓存将为您提供比内存缓存更好的性能,CloudFront运行nginx,这比静态文件中的IIS好得多(等等)。

设置边缘缓存非常简单 - 您可以登录并获取一个域名,而不是您自己的图像URL。