यह वास्तव में आपके आवेदन पूछताछ मॉडल और यातायात मांगों पर निर्भर करता है।
- Redis/Hazelcast का उपयोग करने से सबसे अच्छा प्रदर्शन प्राप्त हो सकता है क्योंकि अब DB के लिए कोई राउंड-ट्रिप नहीं होगी, लेकिन आपके पास DB में एक सामान्यीकृत डेटा और आपके कैश में denormalized प्रतिलिपि है जो आपके कैश अपडेट पर दबाव डालेगा। नीतियां इसलिए जब भी लगातार डेटा बदलता है तो कैश अपडेट को लागू करने की कीमत पर आपको सबसे अच्छा प्रदर्शन मिलता है।
- द्वितीय स्तर के कैश का उपयोग करना सेटअप करना आसान है लेकिन यह केवल आईडी के आधार पर इकाइयों को संग्रहीत करता है। एक क्वेरी कैश भी है, किसी दिए गए क्वेरी द्वारा लौटाए गए आईडी को संग्रहीत करना। तो दूसरा स्तर कैश एक दो चरणों वाली प्रक्रिया है जिसे आपको सर्वश्रेष्ठ प्रदर्शन प्राप्त करने के लिए ठीक करने की आवश्यकता है। जब आप प्रक्षेपण प्रश्नों को निष्पादित करते हैं तो द्वितीय स्तर का ऑब्जेक्ट कैश आपकी सहायता नहीं करेगा, क्योंकि यह केवल इकाई लोड पर संचालित होता है। दूसरे स्तर के कैश का मुख्य लाभ यह है कि जब भी डेटा बदलता है तो इसे सिंक में रखना आसान होता है, खासकर यदि आपका सारा डेटा हाइबरनेट द्वारा कायम है।
इसलिए, यदि आपको अंतिम प्रदर्शन की आवश्यकता है और आपको अपने कैशे अपडेट लॉजिक को लागू करने में कोई आपत्ति नहीं है जो न्यूनतम अंतिम स्थिरता विंडो सुनिश्चित करता है, तो बाहरी कैश के साथ जाएं।
यदि आपको केवल संस्थाओं को कैश करने की आवश्यकता है (जो आमतौर पर इसे अक्सर नहीं बदलते हैं) और आप अधिकतर हाइबरनेट इकाई लोडिंग के माध्यम से उन तक पहुंचते हैं, तो दूसरा स्तर कैश आपकी मदद कर सकता है।