मुझे समझने में परेशानी होती है कि हाइबरनेट दूसरे स्तर के कैश को कब हिट करता है और कब कैश को अमान्य करता है।
यह वही है जो मैं वर्तमान में समझता हूं:
- दूसरा स्तर कैश सत्र के बीच संस्थाओं को संग्रहीत करता है, स्कोप सत्र है
- आपको यह बताना होगा कि किन संस्थाओं को कैश करना है, कोई भी संस्था डिफ़ॉल्ट रूप से कैश नहीं होगी
- क्वेरी कैश कैश में क्वेरीज़ का परिणाम संग्रहीत करता है।
जो मुझे समझ नहीं आ रहा है
- हाइबरनेट कब इस कैश को हिट करता है?
- मान लीजिए कि मैंने दूसरा स्तर कैश स्थापित किया है, लेकिन क्वेरी कैशिंग नहीं। मैं अपने ग्राहकों को कैश करना चाहता हूं, उनमें से 50000 हैं। मैं किन तरीकों से ग्राहकों को कैश से पुनर्प्राप्त कर सकता हूं?
- मुझे लगता है कि मैं उन्हें कैश से आईडी द्वारा प्राप्त कर सकता हूं। यह आसान होगा लेकिन कैशिंग के लायक भी नहीं। लेकिन क्या होगा अगर मैं अपने सभी ग्राहकों के साथ कुछ गणना करना चाहता हूं। मान लीजिए कि मैं ग्राहकों की सूची दिखाना चाहता हूं तो मैं उन्हें कैसे एक्सेस करूंगा?
- यदि क्वेरी कैशिंग अक्षम है तो मुझे अपने सभी ग्राहक कैसे मिलेंगे?
- अगर किसी ने ग्राहकों को अपडेट किया तो क्या होगा?
- क्या वह ग्राहक कैश में अमान्य हो जाएगा या सभी ग्राहक अमान्य हो जाएंगे?
या मैं कैशिंग पूरी तरह से गलत सोच रहा हूं? उस स्थिति में दूसरे स्तर के कैश का अधिक उपयुक्त उपयोग क्या होगा? हाइबरनेट प्रलेखन बिल्कुल स्पष्ट नहीं है कि कैश वास्तविकता में कैसे काम करता है। इसे स्थापित करने के तरीके के बारे में केवल निर्देश हैं।
अपडेट: तो मुझे समझ में आ गया है कि आईडी द्वारा डेटा लोड करने के लिए द्वितीय स्तर कैश (क्वेरी कैश के बिना) अच्छा होगा। उदाहरण के लिए मेरे पास उपयोगकर्ता ऑब्जेक्ट है जिसे मैं एक वेब एप्लिकेशन में हर अनुरोध में अनुमतियों के लिए जांचना चाहता हूं। क्या दूसरे स्तर के कैश में उपयोगकर्ता को कैशिंग करके डेटाबेस एक्सेस को कम करना एक अच्छा मामला होगा? जैसे मैं यूजर आईडी को सत्र में या जहाँ भी और जब मुझे अनुमति के लिए जाँच करने की आवश्यकता होगी, तो मैं उपयोगकर्ता को आईडी और चेक अनुमतियाँ लोड करूँगा।