2011-05-26 16 views
11

मेमोरी कैश डिफ़ॉल्ट रूप से डिफ़ॉल्ट कैश के साथ आता है और अतिरिक्त नामित कैश बनाए जा सकते हैं।एकल बनाम मल्टीपल मेमोरी कैश उदाहरण

ऐसा लगता है कि अलग-अलग उदाहरणों में विभिन्न प्रक्रियाओं के परिणामों की कैशिंग को अलग करने के फायदे हो सकते हैं। उदाहरण के लिए, किसी इंडेक्स के खिलाफ प्रश्नों के परिणाम "इंडेक्सQueryResult" कैश में कैश किए जा सकते हैं और "डेटाबेसQueryResult" में डेटाबेस क्वेरीज़ का परिणाम हो सकता है "कैश। यह बल्कि विकसित है लेकिन सिद्धांत बताता है।

क्या एक कैश पर स्मृति दबाव अन्य व्यंजनों को प्रभावित करता है? क्या इस तरह से कोई अंतर है। नेट एक कैसा प्रबंधन करता है इसकी तुलना में कई कैश प्रबंधित करता है?

क्या मैं कई कैश के विचार पर विचार कर अपना समय बर्बाद कर रहा हूं, या ऐसा करने में वास्तविक मूल्य है?

उत्तर

5

मैं पहले कुछ प्रश्नों से बात नहीं कर सकता, और मुझे उन लोगों के जवाब सुनने में दिलचस्पी है। हालांकि, मैं कह सकता हूं कि अब तक हमारे उत्पाद में कई कैशों का उपयोग करके हमें एक अच्छा अनुभव रहा है। यहाँ कर रहे हैं लाभ मैं देख रहा हूँ:

  • कुंजी टक्कर की कम मौका: योजना के कुछ प्रकार के साथ आ सुनिश्चित करने के बजाय कि कोई भी दो अलग-अलग मान ही कुंजी के साथ खत्म हो, हम बस एक कैश बना सकते हैं यह किसी दिए गए भंडार प्रकार के लिए विशिष्ट है, और यह जान लें कि जब तक कि रिपॉजिटरी क्लास अपनी ऑब्जेक्ट्स के लिए अद्वितीय कुंजी का उपयोग करती है, तो हमारे पास टकराव नहीं होगा।
  • कैश बेदखल के साथ बेहतर परिशुद्धता: एक विशेष कैश उदाहरण "स्वामित्व" का भंडार प्रकार सिस्टम-वाइड इवेंट बस पर कुछ ईवेंट प्रकारों की सदस्यता ले सकता है, ताकि यह जान सके कि कैश के कुछ हिस्सों को शुद्ध करने की आवश्यकता है । यदि हम भाग्यशाली हैं, तो यह प्रकाशित घटना के तर्कों के आधार पर शुद्ध रूप से शुद्ध करने के लिए प्रविष्टियों की कुंजी निर्धारित कर सकता है। हालांकि, यह अक्सर मामला नहीं होता है, और हमें प्रकाशित कैश द्वारा प्रभावित किए जाने वाले लोगों को यह पता लगाने के लिए सभी कैश किए गए मानों के माध्यम से पूरे कैश या पुनरावृत्ति को शुद्ध करना होगा। अगर हम अपने सिस्टम में सभी डेटा प्रकारों के लिए एक कैश उदाहरण का उपयोग कर रहे थे, तो हम कई असंबद्ध प्रविष्टियों के माध्यम से क्रॉलिंग समाप्त कर देंगे। अलग-अलग कैशों का उपयोग करके, हम अपनी खोज को उन मानों तक सीमित कर सकते हैं जो इस विशेष भंडार को पॉपुलटिंग के लिए ज़िम्मेदार थे।

दूसरे बिंदु के बारे में: हमने सिस्टम में सभी कैश उदाहरणों का पर्दाफाश करने के लिए एक यूआई भी बनाया है, और हमें किसी बटन के क्लिक के साथ उनमें से किसी को शुद्ध करने की अनुमति देता है। यह आसान होता है जब हमें सीधे डेटाबेस में परिवर्तन करने की आवश्यकता होती है, और सर्वर को पुनरारंभ किए बिना उन परिवर्तनों को लेने के लिए सिस्टम की आवश्यकता होती है। दोबारा, अगर हम केवल एक ही कैश का उपयोग करते हैं, तो हम लगभग सटीक नहीं हो सकते: हमें डेटा प्रकारों से जुड़े मूल्यों की बजाय सिस्टम के सभी कैश किए गए मानों को शुद्ध करना होगा, जिनके साथ हमने टंकण किया था।

+0

क्या आप कुछ कोड उदाहरण दिखा सकते हैं जो उपरोक्त उपयोग के 'सिंगल इंस्टेंस' पर लाभ का वर्णन करता है। इसमें यह अधिक सहायक और अधिक लोकप्रिय हो जाएगा। –

+0

@PKKG: नहीं, मुझे नहीं लगता कि इन लाभों को कोड उदाहरणों का उपयोग करके बेहतर तरीके से समझाया जाएगा। अगर अंग्रेजी समझने में मुश्किल हो तो मैं क्षमा चाहता हूं, लेकिन मुझे नहीं लगता कि कोड के नमूने चीजों को स्पष्ट करेंगे। – StriplingWarrior

संबंधित मुद्दे