Я начал использовать Zend Cache (бэкэнд APC), и все хорошо с точки зрения возврата кэшированных значений вместо того, чтобы каждый раз попадать в базу данных.Тем не менее, вот моя проблема:
$cache_key = 'getrebates_'.$operator_code;
if(PP_Model_CacheService::exists($cache_key)) {
$cached_values = PP_Model_CacheService::load($cache_key);
} else {
//hits the db
$cached_values = $this->getAll($operator_code);
PP_Model_CacheService::save($cached_values, $cache_key);
}
return $cached_values;
У каждого оператора есть свои скидки, которые варьируются между операторами, теперь, если я изменю базу данных и мне нужно будет очистить скидки для всех операторов, как бы я это сделал?
Я могу использовать $ Cache-> clean () , но это очистит другие кэши (не только кэш скидок для каждого оператора).Если я переберу все операторы:
foreach($operator_codes AS $operator_code) {
$cache_key = 'getrebates_'.$operator_code;
$cache->delete($cache_key)
}
Это похоже на большую работу для кеша.Есть ли способ очистить только часть кэша.
//Something like:
$section_key = 'getrebates';
$Cache[$section_key][$operator_code];
$Cache->clearSection($section_key);
Существует ли какая-либо структура массива в кэше APC или все основано на ключе / значении кэша?