2014-01-11 1 views
0

Я использую Kohana 2.x, я хочу реализовать кэш для результатов базы данных. Для этого я пытаюсь следующим образом,Проблема с Kohana 2.x Cache

$cache = Cache::instance(); 
$siteSettings = $cache->get('siteSettings'); 
if (! $siteSettings) 
{ 
    // for 1st request only it entering, this I've verified  
    $siteSettings = ORM::factory('siteSettings', 1); 
    $cache->set('siteSettings', $siteSettings, array('siteSettings'), 0); 
} 

После этого при попытке открыть столбцы таблицы, как

$siteSettings->adminEmail; 

Хотя это еще раз попав в базу данных, даже не вписывается в выше if состоянии. Где я ошибаюсь? Я использую кеш файлов и уверен, что у папки есть права на запись, и я проверил файл кеша, который имеет результаты базы данных.

Edit:

Ниже приведены мои настройки кэша

$config['default'] = array(
    'driver' => 'file', 
    'params' => APPPATH.'cache', 
    'lifetime' => 1800, 
    'requests' => -1 
); 

ответ

0

Мы должны иметь

// Prevents cached items from being reloaded 
protected $reload_on_wakeup = FALSE; 

в соответствующей таблице модели класса.

0

кэша не работает, потому что вы не установите time period:

$cache->set('siteSettings', $siteSettings, array('siteSettings'), 0); 

Вы перезаписать настройки по умолчанию период времени 3600 секунд (набор U 0). Установите время для жизни кэша.

+0

Я думал, что период времени равен нулю для полного времени, пока я не очищу себя. Хотя я пробовал значение периода времени как 3600, даже для второго запроса он ударил db. –

+0

@ Mahesh.D проверил ли все настройки драйвера кэша? – voodoo417

+0

@ Mahesh.D и почему не $ cache-> set ('siteSettings', $ siteSettings); ? – voodoo417

 Смежные вопросы

  • Нет связанных вопросов^_^