मैंने ज़ेंड कैश (एपीसी बैकएंड) का उपयोग करना शुरू किया और सभी डेटाबेस को हर बार मारने के बजाय कैश किए गए मानों को वापस करने के मामले में अच्छी तरह से हैं। हालांकि, यहाँ मेरी समस्या:ज़ेंड कैश को साफ़ करने के लिए पैटर्न
$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;
अगर मैं डेटाबेस बदल सकते हैं और सभी ऑपरेटरों के लिए छूट साफ़ करने की आवश्यकता प्रत्येक ऑपरेटर अब अपने स्वयं छूट जो ऑपरेटरों के बीच में भिन्नता है, है, मैं कैसे इस करना होगा?
मैं $ कैश-> साफ() का उपयोग कर सकता हूं, लेकिन यह अन्य कैश को साफ़ करेगा (न केवल प्रत्येक ऑपरेटर के लिए छूट कैश)। अगर मैं सभी ऑपरेटरों के माध्यम से लूप करता हूं:
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);
क्या एपीसी कैश में कोई सरणी संरचना है या क्या यह सभी कैश कुंजी/मान आधारित है?
एपीसी को छोड़कर ... – regilero
आपके समय ड्यूक के लिए धन्यवाद। जैसा कि regilero नीचे बताया गया एपीसी टैग का समर्थन नहीं करता है। टैग का समर्थन करने के लिए आप इस मामले में किस बैकएंड का उपयोग करेंगे? –
हम कितने कैश प्रविष्टियों के बारे में बात कर रहे हैं? यदि इसकी 10 या 20 मैं बस प्रत्येक प्रविष्टि को हटा दूंगा। आपकी ज़रूरतों के आधार पर आप अलग-अलग प्रविष्टियों के बजाय कैश में एक धारावाहिक सहयोगी सरणी को सहेजने पर विचार कर सकते हैं। यह एक अच्छा विचार नहीं है यदि आपको अलग-अलग प्रविष्टियों को अद्यतन/हटाना पड़ता है, हालांकि – theduke