मैं जानना चाहूंगा कि कैश ऑब्जेक्ट्स को अमान्य / अपडेट करने के लिए एक बेहतर तरीका क्या होगा।
आवश्यक शर्तें
- दूरस्थ मेमेकटेड सर्वर (कई अनुप्रयोगों के लिए कैश के रूप में सेवारत)
- सभी सर्वर azure (आत्मीयता क्षेत्रों, समान डेटा केंद्रों) द्वारा होस्ट किए जाते हैं
- कैश ऑब्जेक्ट का आकार 200 बाइट्स से लेकर 50 किलोबाइट तक होता है
दृष्टिकोण 1 (कैश asap में स्टोर)
- ऑब्जेक्ट A बना है -> डेटाबेस में स्टोर और कैश में स्टोर
- ऑब्जेक्ट क्लाइंट द्वारा अनुरोधित -> अस्तित्व के लिए कैश की जांच करें, अन्यथा डेटाबेस से प्राप्त करें और कैश में स्टोर करें
- ऑब्जेक्ट A अपडेट हो जाता है -> डेटाबेस में स्टोर, कैश में स्टोर
दृष्टिकोण 1 अधिक सीधा लगता है। अगर कुछ बनाया है, कैश asap में डाल दिया। भले ही किसी को इसकी आवश्यकता होगी।
दृष्टिकोण 2 (आलसी कैश स्टोर)
- ऑब्जेक्ट A बना है -> डेटाबेस में स्टोर
- ऑब्जेक्ट क्लाइंट द्वारा अनुरोधित -> अस्तित्व के लिए कैश की जांच करें, अन्यथा डेटाबेस से प्राप्त करें और कैश में स्टोर करें
- ऑब्जेक्ट ए अद्यतन हो जाता है -> डेटाबेस में स्टोर, कैश में कुंजी हटाएं
दृष्टिकोण 2 अधिक स्मृति-जागरूक लगता है। इस दृष्टिकोण में केवल अनुरोधित आइटम कैश में जाते हैं।
प्रश्न 1: प्रदर्शन के मद्देनजर, एक बेहतर तरीका क्या होगा? मेमोरी और न ही सीपीयू की अभी तक गिनती नहीं है।
प्रश्न 2: क्या मेरे विचार एक प्रकार की समयपूर्व अनुकूलन हैं?
प्रश्न 3: कोई अन्य विचार? अन्य दृष्टिकोण?