Доброе время суток.
С Yii недавно начал общаться, до этого работал с drual 6 - 7. Не доконца понимаю как проектировать приложение(Относительно Yii).
В этом топике хотелось бы обсудить эффективные инженерные решения.
Меня заинтересовало инженерное решение кеширования картинок. Много разных вариантов решения этой маленькой проблемы. Но интересно спросить у гуру как это делается наиболее эффективно для хорошо посещаемых сайтов, скажем от 5000 - 10000 посетителей в день и 10 - 15 активных модераторов…
Собственно у меня используется загрузка изображений к материалу (от 3 и более). Допустим сохраняю оригинал в папку Images(При создании поста, новости и т.д.), посредством вызова beforeSave(Вид пути до оригинала: /images/{Yii::app()->user->id}/coll-{$model->collection->id}/money-{$model->id}/). Имена генерирую с помощью uniqid. Используя допустим компонент "Image" - тут же создаю необходимые для вывода позьзователю изображения с измененным размером(пример пути: /assets/{Yii::app()->user->id}/coll-{$model->collection->id}/money-{$model->id}/{$presetName}/ где $presetName - Скажем размер изображения или понятное название…). $model->collection - это relations к связанной таблице.
Пользователь имеет скажем 3 коллекции в каждой по 1000 монет(таких пользователей может быть много)… Если путь для каждой монеты генерировать, то страница будет долго грузиться, что не допустимо. Как правильно в этой ситуации кешировать? И хранить инфо о файлах. Хранить пути в базе данных(MySQL) не есть гуд… Колво записей будет невероятно много… Есть вариант сканить папку, как это должно взаимодействовать с кешем?
Наиболее интересные решения в процессе дисскусий будут собираться в кучку и добавлятьс в начало поста.
С уважением Михаил!