Как стать автором
Обновить

Yii — кеширование, не просто а очень просто… и быстро

Кеширование — (англ. cache, от фр. cacher — «прятать») — буфер с быстрым доступом, содержащий информацию, которая может быть запрошена с наибольшей вероятностью. Доступ к подгтовленным данным в кэше идёт быстрее, чем например выборка исходных данных из базы данных и подгтовка их к выводу с помощью PHP скрипта, за счёт чего уменьшается среднее время доступа и увеличивается общая производительность компьютерной системы.

Касательно yii, кеширование это не только быстро но и очень просто!


Первым делом нам надо включить кеширование, добавив всего одну строку в основной конфиг приложения, например, если мы хотим хранить кеш в файлах, это:

'components'=>array(

'cache'=>array('class'=>'system.caching.CFileCache'),



Всё, кеш у нас включен.

Далее в шаблоне пишем:

<?php if($this->beginCache('уникальный_идентификатор')) { ?>
html-код нашего шаблона, если надо c переменными<?php echo $content; ?>
<?php $this->endCache(); } ?>


Готово, наш шаблон успешно кешируется на 60 секунд (время по умолчанию).

Если вы хотите использовать memcache, или любой другой, из списка поддерживаемых фреймворком, то просто меняем в конфиге одну строку:

'cache'=>array('class'=>'system.caching.CMemCache', 'servers'=>array(array('host'=>'localhost', 'port'=>'11211', 'weight'=>'100'),),
),

— в случае мемеша еще нужно указать хост и порт, на котором висит мемкеш.

Для удобства разработки и отладки можно отключить кеш, испльзуя «заглушку»:

'class'=>'system.caching.CDummyCache',

— функциональность приложения не пострадает, но кеш будет отключен.

В общем это всё, что нужно чтобы начать пользоваться кешированием.

Есть еще горстка функционала, такое как зависимость кеша от внешних параметров, время кеширования, кеширование данных в контроллерах и т.п. — это всё прекрасно поисано в документации фреймворка и не сложнее чем кеширование шаблонов описанное выше.

Итак, чтобы начать использовть кешировать своих щаблонов требуется только два действия: 1. включить кеш в конфиге, 2. указать в шаблонах какой фрагмент должен кешироваться.

Одного этого в большинстве случаев достаточно, чтобы снизить нагрузку на процессор и базу данных на порядок.

К примеру на php.ru использование кеша снизило нагрузку на процессор примерно в 15-20 раз! На базу данных примерно в 10 раз.

image

image

Кеш — великая сила :)
Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.