我开始使用 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 缓存是否有任何数组结构,还是全部基于缓存键/值?