आपको Apigee Edge का दस्तावेज़ दिख रहा है.
Apigee X के दस्तावेज़ पर जाएं. जानकारी
इस विषय में, कैश मेमोरी में डेटा सेव करने की नीति, कैश मेमोरी में मौजूद डेटा को ऐक्सेस करने की नीति, कैश मेमोरी में मौजूद डेटा को अमान्य करने की नीति, और जवाब को कैश मेमोरी में सेव करने की नीति जैसी नीतियों के तहत कैश मेमोरी के काम करने के तरीके के बारे में बताया गया है.
शेयर की गई और एनवायरमेंट कैश मेमोरी
कॉन्फ़िगर की गई हर कैश मेमोरी की नीति, दो तरह की कैश मेमोरी में से किसी एक का इस्तेमाल कर सकती है: एक ऐसी शेयर की गई कैश मेमोरी जिसे आपके ऐप्लिकेशन ऐक्सेस कर सकते हैं और एक या उससे ज़्यादा एनवायरमेंट के दायरे वाली ऐसी कैश मेमोरी जिसे आपने बनाया है.
-
शेयर की गई कैश मेमोरी: डिफ़ॉल्ट रूप से, आपकी प्रॉक्सी के पास हर एनवायरमेंट में शेयर की गई एक कैश मेमोरी का ऐक्सेस होता है. शेयर की गई कैश मेमोरी, इस्तेमाल के सामान्य उदाहरणों के लिए अच्छी तरह से काम करती है.
शेयर की गई कैश मेमोरी के साथ काम करने के लिए, सिर्फ़ कैश मेमोरी की नीतियां इस्तेमाल की जा सकती हैं. मैनेजमेंट एपीआई का इस्तेमाल नहीं किया जा सकता. अगर आपको कैश मेमोरी में सेव करने की नीति के लिए शेयर की गई कैश मेमोरी का इस्तेमाल करना है, तो नीति के
<CacheResource>एलिमेंट को हटा दें. -
एनवायरमेंट कैश मेमोरी: अगर आपको अपनी पसंद की वैल्यू के साथ कैश मेमोरी की प्रॉपर्टी कॉन्फ़िगर करनी हैं, तो एनवायरमेंट के स्कोप वाली कैश मेमोरी बनाई जा सकती है. कैश बनाने के बारे में ज़्यादा जानने के लिए, एनवायरमेंट कैश बनाना और उसमें बदलाव करना लेख पढ़ें.
एनवायरमेंट कैश बनाते समय, उसकी डिफ़ॉल्ट प्रॉपर्टी कॉन्फ़िगर की जाती हैं. कैशिंग की नीति में, एनवायरमेंट कैश मेमोरी का इस्तेमाल किया जा सकता है. इसके लिए, नीति के
<CacheResource>एलिमेंट में कैश मेमोरी का नाम डालें.
कैश मेमोरी को एन्क्रिप्ट (सुरक्षित) करने के बारे में जानकारी
सार्वजनिक क्लाउड के लिए Edge: कैश मेमोरी को सिर्फ़ इन संगठनों में एन्क्रिप्ट (सुरक्षित) किया जाता है: पीसीआई- और HIPAA-अनुपालक संगठन. इन संगठनों के लिए एन्क्रिप्शन, संगठन के लिए सेवा चालू करने के दौरान कॉन्फ़िगर किया जाता है.
इन-मेमोरी और परसिस्टेंट कैश लेवल
शेयर की गई और एनवायरमेंट, दोनों तरह की कैश मेमोरी, दो लेवल वाले सिस्टम पर बनाई जाती हैं. इसमें एक इन-मेमोरी लेवल और दूसरा परसिस्टेंट लेवल होता है. नीतियां, दोनों लेवल पर एक साथ काम करती हैं. Edge, लेवल के बीच के संबंध को मैनेज करता है.

-
पहले लेवल पर, मेमोरी में मौजूद कैश मेमोरी (L1) होती है, ताकि डेटा को तेज़ी से ऐक्सेस किया जा सके. हर मैसेज प्रोसेसिंग नोड (एमपी) में, अनुरोधों का तुरंत जवाब देने के लिए, अपनी इन-मेमोरी कैश (Ehcache से लागू किया गया) होती है.
- हर नोड पर, कैश मेमोरी के इस्तेमाल के लिए मेमोरी का कुछ प्रतिशत रिज़र्व किया जाता है.
- मेमोरी की सीमा पूरी होने पर, Apigee Edge मेमोरी से कैश मेमोरी की एंट्री हटा देता है. हालांकि, इन्हें अब भी L2 परसिस्टेंट कैश मेमोरी में रखा जाता है, ताकि यह पक्का किया जा सके कि मेमोरी अन्य प्रोसेस के लिए उपलब्ध रहे.
- एंट्री को हटाने का क्रम, पिछली बार ऐक्सेस किए जाने के समय के हिसाब से होता है. इसमें सबसे पुरानी एंट्री को सबसे पहले हटाया जाता है.
- इन कैश मेमोरी में भी, कैश मेमोरी में मौजूद एंट्री की संख्या के हिसाब से डेटा सेव किया जाता है.
-
लेवल 2, मेमोरी में मौजूद कैश के नीचे मौजूद एक परसिस्टेंट कैश (L2) होता है. मैसेज प्रोसेस करने वाले सभी नोड, कैश मेमोरी की एंट्री सेव करने के लिए कैश मेमोरी के डेटा स्टोर (Cassandra) को शेयर करते हैं.
- L1 कैश मेमोरी से हटाए जाने के बाद भी, कैश मेमोरी की एंट्री यहां बनी रहती हैं. जैसे, जब इन-मेमोरी की सीमाएं पूरी हो जाती हैं.
- परसिस्टेंट कैश मेमोरी को सभी मैसेज प्रोसेसर के साथ शेयर किया जाता है. भले ही, वे अलग-अलग क्षेत्रों में हों. इसलिए, कैश मेमोरी की एंट्री उपलब्ध होती हैं. इससे कोई फ़र्क़ नहीं पड़ता कि कैश मेमोरी में सेव किए गए डेटा का अनुरोध किस नोड को मिलता है.
- सिर्फ़ तय साइज़ की एंट्री को कैश मेमोरी में सेव किया जा सकता है. साथ ही, कैश मेमोरी से जुड़ी अन्य सीमाएं भी लागू होती हैं. कैश मेमोरी की सीमाएं मैनेज करना लेख पढ़ें.
आपको Apigee कम्यूनिटी में मौजूद, Apigee Edge में कैश मेमोरी की सुविधा के बारे में ज़्यादा जानकारी लेख में भी दिलचस्पी हो सकती है.
नीतियां, कैश मेमोरी का इस्तेमाल कैसे करती हैं
यहां बताया गया है कि Apigee Edge, कैश मेमोरी की एंट्री को कैसे मैनेज करता है. ऐसा तब होता है, जब कैश मेमोरी की नीतियां काम कर रही होती हैं.
- जब कोई नीति, कैश मेमोरी में नई एंट्री लिखती है (PopulateCache या ResponseCache नीति):
- Edge, एंट्री को सिर्फ़ उस मैसेज प्रोसेसर की इन-मेमोरी L1 कैश मेमोरी में लिखता है जिसने अनुरोध को हैंडल किया है. अगर एंट्री की समयसीमा खत्म होने से पहले ही मैसेज प्रोसेसर पर मेमोरी की सीमाएं पूरी हो जाती हैं, तो Edge, L1 कैश मेमोरी से एंट्री हटा देता है.
- Edge, एंट्री को L2 कैश मेमोरी में भी लिखता है.
- जब कोई नीति, कैश मेमोरी से पढ़ती है (LookupCache या ResponseCache नीति):
- Edge, अनुरोध को प्रोसेस करने वाले मैसेज प्रोसेसर की इन-मेमोरी L1 कैश मेमोरी में सबसे पहले एंट्री ढूंढता है.
- अगर इन-मेमोरी में कोई मिलती-जुलती एंट्री नहीं है, तो Edge, L2 परसिस्टेंट कैश मेमोरी में एंट्री खोजता है.
- अगर एंट्री, परसिस्टेंट कैश मेमोरी में नहीं है, तो:
- LookupCache नीति: कैश मेमोरी से कोई वैल्यू नहीं मिलती है.
- ResponseCache नीति: Edge, टारगेट से मिले असली जवाब को क्लाइंट को भेजता है. साथ ही, एंट्री को कैश मेमोरी में तब तक सेव करता है, जब तक वह खत्म नहीं हो जाती या अमान्य नहीं हो जाती.
- जब कोई नीति, मौजूदा कैश मेमोरी एंट्री (InvalidateCache, PopulateCache या ResponseCache नीति) को अपडेट करती है या अमान्य करती है, तब:
- अनुरोध पाने वाला मैसेज प्रोसेसर, सभी इलाकों में मौजूद मैसेज प्रोसेसर और खुद के L1 कैश मेमोरी में मौजूद एंट्री को अपडेट करने या मिटाने के लिए ब्रॉडकास्ट भेजता है.
- अगर ब्रॉडकास्ट हो जाता है, तो मैसेज पाने वाला हर प्रोसेसर, L1 कैश मेमोरी में मौजूद एंट्री को अपडेट करता है या हटा देता है.
- अगर ब्रॉडकास्ट नहीं हो पाता है, तो अमान्य की गई कैश मेमोरी की वैल्यू, उन मैसेज प्रोसेसर पर L1 कैश मेमोरी में बनी रहती है जिन्हें ब्रॉडकास्ट नहीं मिला. इन मैसेज प्रोसेसर के पास L1 कैश मेमोरी में पुराना डेटा होगा. यह डेटा तब तक रहेगा, जब तक एंट्री का टाइम-टू-लाइव (टीटीएल) खत्म नहीं हो जाता या मैसेज प्रोसेसर की मेमोरी की सीमाएं पूरी होने पर इसे हटा नहीं दिया जाता.
- ब्रॉडकास्ट, L2 कैश मेमोरी में मौजूद एंट्री को अपडेट या मिटाता भी है.
- अनुरोध पाने वाला मैसेज प्रोसेसर, सभी इलाकों में मौजूद मैसेज प्रोसेसर और खुद के L1 कैश मेमोरी में मौजूद एंट्री को अपडेट करने या मिटाने के लिए ब्रॉडकास्ट भेजता है.
कैश मेमोरी की सीमाएं मैनेज करना
कॉन्फ़िगरेशन की मदद से, कैश मेमोरी के कुछ पहलुओं को मैनेज किया जा सकता है. सिस्टम संसाधनों की वजह से, इन-मेमोरी कैश के लिए उपलब्ध कुल स्पेस सीमित होता है. इसे कॉन्फ़िगर नहीं किया जा सकता. कैश मेमोरी पर ये पाबंदियां लागू होती हैं:
- कैश मेमोरी की सीमाएं: कैश मेमोरी की अलग-अलग सीमाएं लागू होती हैं. जैसे, नाम और वैल्यू का साइज़, कैश मेमोरी की कुल संख्या, कैश मेमोरी में मौजूद आइटम की संख्या, और समयसीमा खत्म होने की तारीख.
-
इन-मेमोरी (L1) कैश. कैश के लिए मेमोरी की सीमाओं को कॉन्फ़िगर नहीं किया जा सकता. ये सीमाएं, Apigee सेट करता है. ये सीमाएं, हर मैसेज प्रोसेसर के लिए सेट की जाती हैं. यह मैसेज प्रोसेसर, कई ग्राहकों के लिए कैश मेमोरी होस्ट करता है.
होस्ट किए गए क्लाउड एनवायरमेंट में, सभी ग्राहक डिप्लॉयमेंट के लिए इन-मेमोरी कैश को कई शेयर किए गए मैसेज प्रोसेसर पर होस्ट किया जाता है. हर प्रोसेसर में, Apigee के ज़रिए कॉन्फ़िगर किया जा सकने वाला मेमोरी प्रतिशत थ्रेशोल्ड होता है. इससे यह पक्का किया जाता है कि कैश मेमोरी, ऐप्लिकेशन की पूरी मेमोरी का इस्तेमाल न करे. किसी मैसेज प्रोसेसर के लिए थ्रेशोल्ड पार होने पर, कैश मेमोरी की एंट्री को मेमोरी से हटा दिया जाता है. ऐसा सबसे कम इस्तेमाल की गई एंट्री के आधार पर किया जाता है. मेमोरी से हटाए गए आइटम, L2 कैश मेमोरी में तब तक बने रहते हैं, जब तक उनकी समयसीमा खत्म नहीं हो जाती या उन्हें अमान्य नहीं कर दिया जाता.
- स्थायी (L2) कैश मेमोरी. मेमोरी में मौजूद कैश मेमोरी से हटाई गई एंट्री, कॉन्फ़िगर की जा सकने वाली टाइम-टू-लाइव सेटिंग के मुताबिक परसिस्टेंट कैश मेमोरी में बनी रहती हैं.
कॉन्फ़िगर किए जा सकने वाले ऑप्टिमाइज़ेशन
यहां दी गई टेबल में उन सेटिंग की सूची दी गई है जिनका इस्तेमाल, कैश मेमोरी की परफ़ॉर्मेंस को ऑप्टिमाइज़ करने के लिए किया जा सकता है. नई एनवायरमेंट कैश बनाते समय, इन सेटिंग के लिए वैल्यू तय की जा सकती हैं. इसके बारे में एनवायरमेंट कैश बनाना और उसमें बदलाव करना लेख में बताया गया है.
| सेटिंग | ब्यौरा | नोट |
|---|---|---|
| खत्म होने की तारीख | इससे कैश मेमोरी में सेव की गई एंट्री के लिए, टाइम टू लिव (टीटीएल) तय किया जाता है. | कोई नहीं. |