में मौजूद कुंजियों को कैसे संभालना है, मैं डेटाबेस डेटा के इन-मेमोरी कैश को लागू करने के लिए CacheBuilder और LoadingCache का उपयोग कर रहा हूं।गुवा लोडिंग कैश - बैकिंग स्टोर
मान लीजिए कि क्लाइंट किसी आइटम के लिए कैश से पूछताछ करता है जो बैकिंग स्टोर में मौजूद नहीं है। मैं क्लाइंट को यह जानना चाहता हूं कि निर्दिष्ट कुंजी के लिए कोई डेटा नहीं मिला। इसे संभालने के लिए सबसे अच्छा तरीका क्या है?
- कैश में विशेष मान स्टोर करें जो "डेटा नहीं" दर्शाता है।
- कैश में कुछ भी स्टोर न करें और अपवाद बढ़ाएं।
- अन्य विचार?
अच्छा ... क्या यह एक असाधारण स्थिति का प्रतिनिधित्व करता है, या यह आपके कार्यक्रम में एक सामान्य घटना है? यदि पहला, अपवाद फेंक दो, यदि दूसरा, एक विशेष मूल्य स्टोर करें। –
मैंने कुछ हद तक अनिच्छुक रूप से लुई के मामलों के बाद में 'वैकल्पिक' का उपयोग किया है। – Ray
मेरे मामले में, "कोई डेटा" सार्थक नहीं है। प्रारंभ में, मैंने कैश में शून्य को स्टोर करने का प्रयास किया, जो 'अवैध कैशलोड लोड अपवाद' के कारण विफल रहा। सुझाव के लिए धन्यवाद, रे। यहां कुछ अच्छी जानकारी भी मिली: http://stackoverflow.com/questions/8298285/handle-null-value-using-guava-mapmaker-cachebuilder – frankadelic