我開始使用Zend緩存(APC後端),一切都很好在返回的緩存值,而不是每次都命中數據庫的條款。然而,我的繼承人問題:模式清除緩存的Zend
$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緩存或是所有緩存鍵/值的基礎?
除了APC ...... – regilero 2011-04-30 22:12:14
感謝您的時間公爵。正如Regilero指出的,APC不支持標籤。在這種情況下,您會使用哪個後端來支持標籤? – 2011-05-02 14:27:09
我們在談論多少個緩存條目? 如果其10或20我只是刪除每個條目。 根據您的需要,您可以考慮將序列化關聯數組保存到緩存中,而不是單個條目。這不,如果你有更新/刪除單個條目時常想起 – theduke 2011-05-05 09:23:33