कैश मेमोरी कुंजी की मदद से काम करना

आपको Apigee Edge दस्तावेज़ दिख रहा है.
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है इस पेज पर जाएं Apigee X दस्तावेज़.
जानकारी

कैश मेमोरी की नीतियों का इस्तेमाल करते समय, आप यह पक्का करते हैं कि कैश मेमोरी को कॉन्फ़िगर करके, कैश मेमोरी में सेव की गई वैल्यू कुंजियों की यूनीक वैल्यू रखी जा सकती है बटन का इस्तेमाल करें. कैश मेमोरी वाली कुंजी और ऐसी अन्य वैल्यू जिन्हें कॉन्फ़िगर किया जा सकता है, आपको बाहर निकलने का एक भरोसेमंद तरीका देती हैं को सेव कर सकता है. आप कैश मेमोरी भरने से जुड़ी नीति, lookupकैश नीति, अमान्य कैश नीति, और रिस्पॉन्स कैश मेमोरी नीति का इस्तेमाल करते हैं.

कॉन्फ़िगरेशन तत्वों के मान -- <CacheKey>/<KeyFragment>, <Scope>, और <Prefix> -- को ऐसा आइडेंटिफ़ायर बनाने के लिए जोड़ा जाता है जो आपके पास कैश मेमोरी में सेव किया जाने वाला मान होता है. वैल्यू पाने के लिए भी इसी कॉन्फ़िगरेशन का इस्तेमाल किया जा सकता है.

इन कैश नीति के कॉन्फ़िगरेशन एलिमेंट की मदद से, कैश कुंजी बनाई जा सकती है:

कैश मेमोरी का कॉन्फ़िगरेशन एलिमेंट ब्यौरा
<CacheKey> / <KeyFragment> <CacheKey> <KeyFragment> एलिमेंट का इस्तेमाल करके, इन्हें इस्तेमाल करें कैश एंट्री के लिए यूनीक आइडेंटिफ़ायर तय करें. कीफ़्रैगमेंट वैल्यू, स्टैटिक लिटरल या हो सकती हैं वैरिएबल से सेट किया जा सकता है.
<Scope> या <Prefix> आगे बढ़ने के लिए, <Scope> या <Prefix> एलिमेंट का इस्तेमाल करें नेमस्पेस कैश कुंजियां. <Scope> पहले से तय वैल्यू की सूची बनाता है. <Prefix> एलिमेंट, <Scope> की जगह वैल्यू डाल देता है आपके हिसाब से.

इन वैल्यू को <Scope> या इस तरह से जोड़ा जाता है: <Prefix> वैल्यू को डबल-अंडरस्कोर की मदद से, Keyफ़्रैगमेंट वैल्यू से अलग किया गया है. एक से ज़्यादा की-फ़्रैगमेंट वैल्यू को भी डबल अंडरस्कोर से अलग किया जाता है.

स्कोप | prefix__keyfragment[__keyfragment]

रिस्पॉन्स कैश मेमोरी में सेव होने पर नीति का इस्तेमाल करते हैं, तो आपके पास इस कैश कुंजी को रिस्पॉन्स से मिली वैल्यू के साथ जोड़ने का विकल्प होता है हेडर.

<cacheKey> का उपयोग करना

<CacheKey> एलिमेंट कॉन्फ़िगर करता है कि Edge यूनीक आइडेंटिफ़ायर कैसे बनाएगा (एक कुंजी) बनती है. जब Edge, कैश मेमोरी में सेव की गई वैल्यू को हासिल करता है, तो वह कैश मेमोरी का इस्तेमाल करता है कुंजी का इस्तेमाल करें. रिस्पॉन्स कैश नीति में, एक कॉन्फ़िगरेशन कुंजी के बारे में बताता है का इस्तेमाल किया जा सकता है. पॉप-अप कैश और lookup-कैश मेमोरी में इस्तेमाल की जाने वाली नीतियों में, हर नीति के लिए ज़रूरी है कि एक जैसे <CacheKey>एलिमेंट मौजूद हों, ताकि यह पक्का किया जा सके कि कैश मेमोरी उसमें डाली गई वैल्यू से मेल खाती है.

<CacheKey> एलिमेंट में एक से ज़्यादा एलिमेंट शामिल हो सकते हैं <KeyFragment> एलिमेंट. रनटाइम के दौरान, मान <KeyFragment> एलिमेंट को उनके बीच में दो अंडरस्कोर से जोड़ा जाता है 'कैश मेमोरी' कुंजी का हिस्सा बनाने के लिए.

उदाहरण के लिए, नीचे दिया गया कॉन्फ़िगरेशन इस्तेमाल करने के लिए hello__world की वैल्यू बनाता है को कैश मेमोरी में सेव करने के लिए:

<CacheKey>
    <KeyFragment>hello</KeyFragment>
    <KeyFragment>world</KeyFragment>
<CacheKey>

आप किसी कैश कुंजी में वैरिएबल मान का इस्तेमाल <KeyFragment> एलिमेंट, जैसा कि यहां दिखाया गया है:

<KeyFragment ref="variable_name"/>

उदाहरण के लिए, कैश मेमोरी की कुंजी की वैल्यू को अनुरोध वाले मैसेज के कॉन्टेंट-टाइप में शामिल करने के लिए, यह काम करके किया जा सकता है:

<KeyFragment ref="request.header.Content-Type"/>

यहां दिए गए कॉन्फ़िगरेशन में, request.header.Content-Type वैरिएबल में वैल्यू application/json.

<CacheKey>
  <KeyFragment>apiAccessToken</KeyFragment>
  <KeyFragment ref="request.header.Content-Type" />
  <KeyFragment>bar</KeyFragment>
</CacheKey>

नतीजे के तौर पर, एक कैश कुंजी जिसके आखिरी चार अंक apiAccessToken__application/json__bar हैं.

इस्तेमाल किए जा सकने वाले वैरिएबल की सूची के लिए, वैरिएबल रेफ़रंस देखें.

क्वेरी से ली गई कैश मेमोरी पैरामीटर

request.queryparam.<queryparam_name> जैसे वैरिएबल का उपयोग करना और request.querystring, आप कैश कुंजी को कॉन्फ़िगर कर सकते हैं, ताकि कुंजी में अनुरोध की क्वेरी स्ट्रिंग के हिस्से शामिल हों. इसके लिए उदाहरण के लिए, नीचे दिया गया यूआरएल दो क्वेरी पैरामीटर -- param1 और param2 -- का इस्तेमाल करता है, जिनका इस्तेमाल आप अपनी कैश कुंजी:

http://myaccount.apigee.net/mydata?param1=value1&param2=value2

आपका <CacheKey> एलिमेंट, कॉन्फ़िगरेशन के साथ इन वैल्यू को शामिल कर सकता है जैसे:

<CacheKey>
    <KeyFragment ref="request.queryparam.param1" />
    <KeyFragment ref="request.queryparam.param2" />
<CacheKey>

रनटाइम के दौरान, कैश कुंजी में, इकट्ठा की गई पैरामीटर वैल्यू शामिल होंगी, जैसा कि फ़ॉलो किया जा रहा है:

other_key_parts__value1__value2

ध्यान रखें कि जब पैरामीटर से वैल्यू डालने के लिए वैरिएबल का इस्तेमाल किया जाता है, तो वैल्यू <KeyFragment> एलिमेंट ऑर्डर के सुझाए गए क्रम में जोड़ा गया. साथ ही, ध्यान दें कि Edge सिर्फ़ उन वैल्यू का इस्तेमाल करेगा जिनका रेफ़रंस आपने खास तौर पर दिया है <KeyFragment> एलिमेंट. अगर आपके अनुरोध के क्वेरी पैरामीटर की सूचियां अलग-अलग हैं, तो कैश कुंजी में वैरिएशन को ध्यान में नहीं रखा जाएगा.

इसका एक विकल्प request.querystring वैरिएबल का इस्तेमाल करना है, जो पैरामीटर, जो कैश मेमोरी कुंजी के हिस्से के तौर पर दिखते हैं. ध्यान रखें कि इस तरीके का इस्तेमाल सभी पैरामीटर में, अगर पैरामीटर का क्रम एक अनुरोध से दूसरे में अलग-अलग होता है, तो कुंजी अलग होगी. दूसरे शब्दों में, param1=value1&param2=value2 और param2=value2&param1=value1 का इस्तेमाल करने पर, कैश मेमोरी में मौजूद कुंजी की वैल्यू एक जैसी नहीं होती.

इस्तेमाल किए जा सकने वाले वैरिएबल की सूची के लिए, वैरिएबल रेफ़रंस देखें.

<Scope> का इस्तेमाल करना और <प्रीफ़िक्स>

<Scope> और <Prefix> एलिमेंट की मदद से नेमस्पेस प्रीफ़िक्स की मदद से कुंजी को बेहतर बनाएं. वे वैल्यू, आपकी कैश मेमोरी से पहले जोड़ दी गई हैं बटन दबाएं.

डिफ़ॉल्ट रूप से, <Scope> एलिमेंट का इस्तेमाल किया जाता है. यह एक ऐसी गिनती है जिसके मान रेंज बड़ी से कम तक हो सकती है. साथ ही, सबसे छोटी फ़ाइल को डिफ़ॉल्ट के तौर पर सेट किया जाता है. इस डिफ़ॉल्ट वैल्यू का इस्तेमाल तब तक किया जाता है, जब तक कि या कोई दूसरा मान तय करते हैं या <Prefix> एलिमेंट की वैल्यू तय करते हैं. आप <Prefix> एलिमेंट का इस्तेमाल करके, <Scope> वैल्यू को बदलें और इसलिए, namespaces के लिए कस्टम वैल्यू तय करें.

उदाहरण के लिए, <Scope> की वैल्यू "ग्लोबल" -- सबसे विस्तृत दायरा -- संगठन और एनवायरमेंट का नाम. इसलिए, अगर आपका प्रॉक्सी किसी 'सहायता' एक एनवायरमेंट है और 'prod' नाम का एक एनवायरमेंट है, तो इस प्रीप्रेंडाइज़्ड वैल्यू को फ़ॉलो किया जा रहा है:

कॉन्फ़िगरेशन नतीजा
<Scope>Global</Scope> mycompany__prod__.

अगर ऊपर बताई गई कैश कुंजी के साथ ग्लोबल स्कोप का इस्तेमाल किया जा रहा है, तो नतीजा ऐसा होगा अनुसरण करता है:

कॉन्फ़िगरेशन नतीजा
<Scope>Global</Scope>
<CacheKey>
    <KeyFragment>hello</KeyFragment>
    <KeyFragment>world</KeyFragment>
<CacheKey>
mycompany__prod__hello__world.

जैसा कि lookupकैश नीति में बताया गया है, स्कोप को ग्लोबल से खास तक बढ़ाने के लिए कॉन्फ़िगर किया जाना चाहिए. एक एक्सक्लूज़िव स्कोप सबसे ज़्यादा ज़्यादा खास होता है और इसलिए, दिए गए कैश में नेमस्पेस के टकराव का कम से कम जोखिम दिखाता है. खास स्कोप वाली हर कैश एंट्री के आगे, नीचे दिए गए फ़ॉर्म का इस्तेमाल किया जाता है:

orgName__envName__apiProxyName__deployedRevisionNumber__proxy|TargetName__[serializedCacheKey]

उदाहरण के लिए, <Scope> के लिए एक्सक्लूज़िव वैल्यू का इस्तेमाल करके बनाई गई कैश कुंजी ऐसा दिखेगा:

apifactory__test__weatherapi__16__default__apiAccessToken