2010-09-27 14 views
15

मैं थोड़ी देर के लिए एनएचबीरनेट का उपयोग कर रहा हूं, मैं अभी भी सोच रहा हूं कि द्वितीय स्तर कैश प्रदाता के बीच मतभेद क्या हैं?एनएचबर्ननेट द्वितीय स्तर कैश प्रदाता अंतर

  • क्या कुछ बेहतर प्रदर्शन करते हैं?
  • लोकप्रिय क्या है और क्यों?

स्पष्टता के लिए मैं के बारे में बात कर रहा हूँ:

  • NHibernate.Caches.MemCache
  • NHibernate.Caches.Prevalence
  • NHibernate.Caches.SharedCache
  • NHibernate.Caches.SysCache
  • NHibernate.Caches.SysCache2
  • NHibernate.Caches.Velocity

और मुझे यकीन है कि अन्य भी हैं।

धन्यवाद

उत्तर

12

इन कैश प्रदाताओं तुलना प्रभावी रूप से प्रसार बनाम वेग है, आदि बनाम memcached तुलना करने पर निर्भर करता है, और वह वास्तव में NHibernate से संबंधित नहीं है।

यहाँ कुछ कारण हैं (कोई एक पूरी सूची के माध्यम से) दूसरों पर एक लेने के लिए:

आप इसे सरल बनाए रखना चाहते और एक खेत में अपने एप्लिकेशन को चलाने के नहीं है, तो आप उपयोग कर सकते हैं SysCache/प्रचलन, जो proc-proc चलाता है। यदि आप एमएस एसक्यूएल सर्वर का उपयोग करते हैं, तो SysCache2 का उपयोग करें।

यदि आपको कई कैश-समर्पित सर्वरों में एक विशाल कैश की आवश्यकता है, तो आप मेमकैच का उपयोग करना चाहेंगे, जो कि लिनक्स पर चल सकता है ताकि आप लाइसेंसिंग लागत से बच सकें।

यदि आपका एप्लिकेशन Azure पर चलता है या पहले से ही ऐपफ़ैब्रिक का उपयोग करता है, तो आप वेग का उपयोग करना चाहेंगे।

व्यक्तिगत रूप से मैं डेटा एक्सेस (केवल जब आवश्यक हो) की तुलना में उच्च स्तर पर कैशिंग करना पसंद करता हूं, ताकि कैशिंग में कैशिंग को अधिक जानबूझकर और सार्थक बनाने और कैश में डेटा पहुंच से अधिक गले लगाने के लिए किया जा सके। एक उचित ढंग से डिज़ाइन किए गए सिस्टम में, कैशिंग को सजावटी या प्रॉक्सी का उपयोग करके आसानी से पारदर्शी किया जा सकता है।

+0

मैं पहले पैराग्राफ से असहमत हूं। कुछ परिदृश्य कैशिंग के बिना नरक हो सकते हैं, इससे कोई फर्क नहीं पड़ता कि आप उन्हें कैसे कोड करते हैं। और विकल्प आमतौर पर मैन्युअल कैशिंग का कुछ रूप होता है, जो आमतौर पर वास्तुकला के लिए बदतर होता है। –

+0

@Diego: दिया, यह एक बहस बिंदु है। मैं कैश में डेटा एक्सेस से अधिक गले लगाने के लिए एक उच्च परत में "मैनुअल कैशिंग" करना पसंद करता हूं (उदाहरण के लिए भारी प्रोसेसिंग/वेब सेवाएं)। यह मैनुअल कैशिंग एक सजावटी या प्रॉक्सी का 99% समय है, इसलिए यह आर्किटेक्चर में बहुत अधिक ओवरहेड नहीं जोड़ता है। –

+0

@ डिएगो: बीटीडब्लू यह ब्लॉग पोस्ट के लिए एक उत्कृष्ट विषय बना देगा "एनएच द्वितीय-स्तरीय कैश: यह क्या है और कब/क्यों/इसे कैसे लागू करें" ;-) –

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