Как кэшировать изображения в памяти на веб-сервере для веб-приложения ASP.NET MVC? - PullRequest
1 голос
/ 12 октября 2008

Я работаю над веб-приложением со многими изображениями, используя ASP.NET MVC. Я хочу иметь возможность кэшировать изображения в памяти, чтобы улучшить производительность, но я хотел бы услышать, как лучше всего это сделать.

1) Изображения доступны по URL, например http://www.site.com/album/1.jpg. Как изображения хранятся в памяти? Они собираются быть в форме потока памяти?

2) Как получить доступ к изображению из памяти и отправить на веб-страницу? Теперь веб-страницы будут использовать URL-адрес изображения для непосредственного встраивания изображения в тег.

Спасибо!

Ответы [ 4 ]

2 голосов
/ 12 октября 2008

Если изображения - это просто статические файлы на диске, то Beepcake прав, что IIS уже будет кэшировать часто используемые изображения и обслуживать их из памяти. Использование отдельных серверов кэширования не должно быть быстрее, чем IIS, обслуживающий изображение из памяти - это больше связано с масштабируемостью. Если у вас есть большая ферма серверов, это означает, что у вас есть группа серверов, которые работают только с вашим кодом, и группа серверов, которые работают только со статическими образами. Кроме того, если у вас слишком много контента для того, чтобы один сервер кешировал все это, вы можете направить запросы так, чтобы каждый из ваших десяти серверов кэшировал разные 10% вашего контента. Это должно быть намного лучше, чем просто кэширование на каждом сервере одних и тех же наиболее часто используемых 10% контента.

2 голосов
/ 12 октября 2008

Неужели веб-сервер и последующие кэши все равно будут обрабатывать это для статических ресурсов? Не уверен, что можно добиться большого прироста производительности, но, ничего не зная о приложении или настройке, я могу ошибаться.

Для реализации я бы настроил страницу, которая взяла имя файла с изображением и подала его либо с диска, либо с asp.net в кеш-памяти.

0 голосов
/ 16 октября 2011

Если вы хотите действительно хорошую производительность, я бы предложил Amazon CloudFront. Крайнее кэширование даст вам лучшую производительность, чем кэширование памяти, а CloudFront запускает nginx, что значительно лучше, чем IIS для статических файлов (среди прочего).

Настройка пограничного кэширования очень проста - вы входите в систему и получаете домен для использования вместо своего собственного для URL-адресов изображений.

0 голосов
/ 12 октября 2008

Спасибо за ответ. Я думаю, что я думал не в том направлении. Я только что узнал, что Flickr использует Squid для кэширования изображений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...