Forums / National / Russian / Модули и плагины / Кеширование

Wadik
#1 2012-02-27 11:33

Подскажите пожалуйста, как в сиене в плагине закешировать массив, обновлять его и использовать? Хочется снизить нагрузку к частому обращению к базе данных. Мануал прочитал, не понял. Спасибо!

esclkm
#2 2012-02-27 16:37

см примеры в коде движка которые начинаются с $cache &&

littledev.ru - мой маленький зарождающийся блог о котонти.
снижение стоимости программирования и снижение стоимости производства разные вещи. Первое можно скорее сравнить с раздачей работникам дешевых инструментов, чем со снижением зарплаты
Trustmaster
#3 2012-02-27 16:42

Если значение используется не в каждом запросе, то:

// получаем из кеша 
$my_array = $cache->db->get('my_array', 'myplugin');

if (is_null($my_array))
{
    // кеш пуст, надо обновить
    $my_array = get_my_array_somehow();
    $cache->db->store('my_array', $my_array, 'myplugin', 1200);
    // время жизни - 1200 секунд
}

// здесь используем $my_arrray

Если значение нужно загружать практически каждый раз, то можно добавить его в автозагрузку, использовав пространство 'system'. Тогда код упрощается до:

if (is_null($my_array))
{
    // кеш пуст, надо обновить
    $my_array = get_my_array_somehow();
    $cache->db->store('my_array', $my_array, 'system', 1200);
    // время жизни - 1200 секунд
}

// здесь используем $my_arrray
May the Source be with you!
Wadik
#4 2012-02-27 17:39

Спасибо ребята! Разобрался! =)