Кеширование assets в Redis/Memcache

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
zxczxc12
Сообщения: 142
Зарегистрирован: 2013.01.24, 21:16

Кеширование assets в Redis/Memcache

Сообщение zxczxc12 » 2016.12.10, 13:26

Hi

Для увеличения быстродействия системы, сессии и кешрование схемы ДБ я применил Redis, но вот вопрос: можно ли кешировать файлы assets в Redis/Memcache и нужно ли ?
Мысль такова: вся куча файлов ( js/css и тп ) читается с диска, почему бы не хранить её в RAM использовуя подобные БД ?

chesar
Сообщения: 512
Зарегистрирован: 2013.04.10, 17:49

Re: Кеширование assets в Redis/Memcache

Сообщение chesar » 2016.12.10, 16:57

Браузер сам кеширует статику

zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Кеширование assets в Redis/Memcache

Сообщение zelenin » 2016.12.10, 17:17

chesar писал(а):Браузер сам кеширует статику
Кэширование клиентом не решает озвученную в посте проблему.

andrei.obuhovski
Сообщения: 610
Зарегистрирован: 2015.07.16, 10:50

Re: Кеширование assets в Redis/Memcache

Сообщение andrei.obuhovski » 2016.12.10, 18:20

Можно, что мешает то.

Nerf
Сообщения: 780
Зарегистрирован: 2015.01.29, 00:37

Re: Кеширование assets в Redis/Memcache

Сообщение Nerf » 2016.12.10, 19:10

Картинки еще положите до кучи)
Не совсем понимаю надобность. Статику отдает сервер напрямую и делает это бытро, на клиенте кеширует браузер. Вы можете оптимизировать свою "кучу файлов".
Не совсем понимаю в чем выигрыш: считать статический файл с сервера vs обратиться к yii (считать n файлов, прогнать в php), а потом отдать файлы их RAM через стороннюю библиотеку средствами php...

zxczxc12
Сообщения: 142
Зарегистрирован: 2013.01.24, 21:16

Re: Кеширование assets в Redis/Memcache

Сообщение zxczxc12 » 2016.12.10, 19:12

andrei.obuhovski писал(а):Можно, что мешает то.
Понятно что можно :-)

Уточню вопрос, есть ли какое нибудь готовое решение, наподобие https://github.com/yiisoft/yii2-redis , что бы не изобретать велосипед ?

zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Кеширование assets в Redis/Memcache

Сообщение zelenin » 2016.12.10, 19:14

Nerf писал(а):Картинки еще положите до кучи)
Не совсем понимаю надобность. Статику отдает сервер напрямую и делает это бытро, на клиенте кеширует браузер. Вы можете оптимизировать свою "кучу файлов".
Не совсем понимаю в чем выигрыш: считать статический файл с сервера vs обратиться к yii (считать n файлов, прогнать в php), а потом отдать файлы их RAM через стороннюю библиотеку средствами php...
все так: поднять 20 файлов с диска vs поднять 100 файлов с диска, интерпретировать их php, отдать 20 файлов из редиса.

zxczxc12
Сообщения: 142
Зарегистрирован: 2013.01.24, 21:16

Re: Кеширование assets в Redis/Memcache

Сообщение zxczxc12 » 2016.12.10, 19:14

Nerf писал(а):Картинки еще положите до кучи)
Не совсем понимаю надобность. Статику отдает сервер напрямую и делает это бытро, на клиенте кеширует браузер. Вы можете оптимизировать свою "кучу файлов".
Не совсем понимаю в чем выигрыш: считать статический файл с сервера vs обратиться к yii (считать n файлов, прогнать в php), а потом отдать файлы их RAM через стороннюю библиотеку средствами php...
Статику отдает сервер напрямую и делает это бытро
Ну тогда если так говорить , То зачем кешировать сессии , схему DB и тп ? :-)
Если проект нагруженный , то к диску идут запросы на чтение , замедляя систему при больших нагрузках

zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Кеширование assets в Redis/Memcache

Сообщение zelenin » 2016.12.10, 19:15

zxczxc12 писал(а):
Nerf писал(а):Картинки еще положите до кучи)
Не совсем понимаю надобность. Статику отдает сервер напрямую и делает это бытро, на клиенте кеширует браузер. Вы можете оптимизировать свою "кучу файлов".
Не совсем понимаю в чем выигрыш: считать статический файл с сервера vs обратиться к yii (считать n файлов, прогнать в php), а потом отдать файлы их RAM через стороннюю библиотеку средствами php...
Статику отдает сервер напрямую и делает это бытро
Ну тогда если так говорить , То зачем кешировать сессии , схему DB и тп ? :-)
Если проект нагруженный , то к диску идут запросы на чтение , замедляя систему при больших нагрузках
viewtopic.php?p=205535#p205534

zxczxc12
Сообщения: 142
Зарегистрирован: 2013.01.24, 21:16

Re: Кеширование assets в Redis/Memcache

Сообщение zxczxc12 » 2016.12.10, 19:17

Ну наверное вы правы

andrei.obuhovski
Сообщения: 610
Зарегистрирован: 2015.07.16, 10:50

Re: Кеширование assets в Redis/Memcache

Сообщение andrei.obuhovski » 2016.12.10, 20:48

zelenin писал(а):
Nerf писал(а):Картинки еще положите до кучи)
Не совсем понимаю надобность. Статику отдает сервер напрямую и делает это бытро, на клиенте кеширует браузер. Вы можете оптимизировать свою "кучу файлов".
Не совсем понимаю в чем выигрыш: считать статический файл с сервера vs обратиться к yii (считать n файлов, прогнать в php), а потом отдать файлы их RAM через стороннюю библиотеку средствами php...
все так: поднять 20 файлов с диска vs поднять 100 файлов с диска, интерпретировать их php, отдать 20 файлов из редиса.
Тут можно придраться к тому, что с включенным опкэшем php не будет каждый раз читать файлы с диска, а закэширует байт-код. Но согласен с тем что автор на спичках пытается сэкономить :)

Nerf
Сообщения: 780
Зарегистрирован: 2015.01.29, 00:37

Re: Кеширование assets в Redis/Memcache

Сообщение Nerf » 2016.12.11, 00:49

andrei.obuhovski писал(а):
zelenin писал(а):
Nerf писал(а):Картинки еще положите до кучи)
Не совсем понимаю надобность. Статику отдает сервер напрямую и делает это бытро, на клиенте кеширует браузер. Вы можете оптимизировать свою "кучу файлов".
Не совсем понимаю в чем выигрыш: считать статический файл с сервера vs обратиться к yii (считать n файлов, прогнать в php), а потом отдать файлы их RAM через стороннюю библиотеку средствами php...
все так: поднять 20 файлов с диска vs поднять 100 файлов с диска, интерпретировать их php, отдать 20 файлов из редиса.
Тут можно придраться к тому, что с включенным опкэшем php не будет каждый раз читать файлы с диска, а закэширует байт-код. Но согласен с тем что автор на спичках пытается сэкономить :)
С включенным superUberCache все равно будет запрос сервер->php->файл (иначе сервер->файл), если условно.
Ну тогда если так говорить , То зачем кешировать сессии , схему DB и тп ? :-)
Если проект нагруженный , то к диску идут запросы на чтение , замедляя систему при больших нагрузках
1) Вы к ним обращаетесь уже "запустив" php. Работать с сессией(она не статична к тому же) быстрее в RAM, чем в режиме чтение-запись с диска.
2) Купите SSD, сделайте RAID, купите 2 сервер, используйте CDN, RAM-диск...

andrei.obuhovski
Сообщения: 610
Зарегистрирован: 2015.07.16, 10:50

Re: Кеширование assets в Redis/Memcache

Сообщение andrei.obuhovski » 2016.12.11, 12:03

Nerf писал(а): С включенным superUberCache все равно будет запрос сервер->php->файл (иначе сервер->файл), если условно.
А вы отключите opcache.validate_timestamps и удалите все из index.php. Будете очень сильно удивлены.

zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Кеширование assets в Redis/Memcache

Сообщение zelenin » 2016.12.11, 14:37

andrei.obuhovski писал(а):
Nerf писал(а): С включенным superUberCache все равно будет запрос сервер->php->файл (иначе сервер->файл), если условно.
А вы отключите opcache.validate_timestamps и удалите все из index.php. Будете очень сильно удивлены.
и что случится? из этой схемы неожиданно исчезнет php?)

andrei.obuhovski
Сообщения: 610
Зарегистрирован: 2015.07.16, 10:50

Re: Кеширование assets в Redis/Memcache

Сообщение andrei.obuhovski » 2016.12.11, 14:56

zelenin писал(а):
andrei.obuhovski писал(а):
Nerf писал(а): С включенным superUberCache все равно будет запрос сервер->php->файл (иначе сервер->файл), если условно.
А вы отключите opcache.validate_timestamps и удалите все из index.php. Будете очень сильно удивлены.
и что случится? из этой схемы неожиданно исчезнет php?)
Ага. И на его место придет Go!)
На самом деле вопрос был про файлы. Php не будет парсить файлы, а возьмет опкоды из памяти.

Nerf
Сообщения: 780
Зарегистрирован: 2015.01.29, 00:37

Re: Кеширование assets в Redis/Memcache

Сообщение Nerf » 2016.12.11, 15:25

andrei.obuhovski писал(а): На самом деле вопрос был про файлы. Php не будет парсить файлы, а возьмет опкоды из памяти.
Php не будет запускаться, не будет идти запрос к внешнему сервису (redis)? Я не знаю, что нужно сделать, чтобы такая связка выигрывала бы в статичной отдаче файлов. Файловый сервер для того и создан, там свои механизмы кеширования и т.п.
Короче, проще и быстрее смонтировать директорию с ресурсами в память...

Ответить