Задать вопрос
@NatanNovak

Как с помощью Yii caching реализовать кеширование базы и файлов шаблона в оперативную память?

Здравствуйте друзья ! Помогите разобраться с кешированием в оперативную память.

Разрабатываем корп. портал на Yii 1.1 . Есть Redis и много оперативной памяти. Хочется скорости.
Перечитал немало статей и теории... пары, ключи и т.д. но так и не понял как практически реализуется кеширование файлов (лейаутов, вьювов) в оп. память. Подсказать некому.

Объясните пожалуйста как я могу с помощью Yii реализовать кеширование файлов фреймворка и шаблона в оперативную память, что бы у пользователей портал летал как метеор, чтобы Дуров со-своим вКонтактом завидовали.

Вопрос только по Redis или Мемcahed (накрайняк). Интересен практический принцип, опыт реализации и код.

Зарание спасибо за ответы!
  • Вопрос задан
  • 3717 просмотров
Подписаться 2 Оценить Комментировать
Решения вопроса 1
Тему не копал, но самый просто способ переопределить метод render (по дефолту в protected/components/Controller.php, если его нет, то надо создать и унаследовать от CController).

В этом методе делаем что-то из разряда:

public function render($view, $data = null, $return = false)
{
    $cache_key = $view . json_encode($data);
    $cached_data = Yii::app()->cache->get($cache_key);

    if (!$cached_data) {
        $cached_data = parent::render($view, $data, true);
        Yii::app()->cache->set($cache_key, $cached_data);
    }

    if ($return) {
        return $cached_data;
    } else {
        echo $cached_data;
    }
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
copist
@copist
Empower people to give
Посмотри следующие разделы в документации:

* кэширование страниц - про то, что в кэш можно поместить всё содержимое страницы
* кэширование фрагментов - про то, что можно поместить в кэш кусочек HTML
* кэширование динамического содержимого - про то, что внутрь кэшируемого фрагмента можно включить код, который меняется (например, в кэш всей страницы - блок банеров, при каждом обновлении страницы показывать другой банер)

Обращайся, если нужны подробности (https://toster.ru/user/copist)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы