Node.js में कैश मेमोरी को ऐक्सेस करना

Apigee Edge दस्तावेज़ देखा जा रहा है.
Apigee X दस्तावेज़ पर जाएं.
जानकारी

Node.js ऐप्लिकेशन में, Edge से डिस्ट्रिब्यूट की गई कैश मेमोरी को ऐक्सेस करने के लिए, apigee-access मॉड्यूल का इस्तेमाल किया जा सकता है. इस मॉड्यूल में, डेटा कैश मेमोरी पाने, उसे डाटने, पाने, और डेटा को हटाने के तरीके शामिल होते हैं.

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

apigee-access मॉड्यूल और इसकी अन्य सुविधाओं के बारे में जानने के लिए, apigee-access मॉड्यूल का इस्तेमाल करना देखें.

तरीके


(1) getcache

var cache = apigee.getCache(cacheName);

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

पैरामीटर:

cacheName - स्ट्रिंग, कैश मेमोरी का नाम. (यह कैश मेमोरी संसाधन का नाम नहीं है).

सामान लौटाना:

एक कैश ऑब्जेक्ट.

उदाहरण:

var apigee = require('apigee-access');
var cache = apigee.getCache('cache');

(2) get cache

var customCache = apigee.getCache(cacheName, options );

कॉन्फ़िगरेशन ऑब्जेक्ट में मौजूद, पसंद के मुताबिक कैश मेमोरी के संसाधन को ऐक्सेस करें. कैश रिसॉर्स बनाने के तरीके के बारे में जानने के लिए, एनवायरमेंट कैश बनाना और उसमें बदलाव करना देखें.

पैरामीटर:

cacheName - एक स्ट्रिंग, जो कस्टम कैश मेमोरी का नाम है. (यह कैश मेमोरी संसाधन का नाम नहीं है)

options - कॉन्फ़िगरेशन ऑब्जेक्ट. ऑब्जेक्ट खाली हो सकता है या इसमें ये वैकल्पिक पैरामीटर शामिल हो सकते हैं:

  • resource: उस Apigee "कैश रिसॉर्स" का नाम जहां कैश डेटा सेव किया जाता है. कैश मेमोरी के संसाधनों का इस्तेमाल, मेमोरी के बंटवारे और कैश मेमोरी के अन्य पैरामीटर को बेहतर बनाने के लिए किया जाता है. अगर इसके बारे में जानकारी नहीं दी गई है, तो डिफ़ॉल्ट संसाधन का इस्तेमाल किया जाएगा. अगर कैश रिसॉर्स मौजूद नहीं है, तो यह तरीका गड़बड़ी दिखाता है.

  • scope: इससे यह पता चलता है कि आपस में टकराव रोकने के लिए, कैश एंट्री प्रीफ़िक्स हैं या नहीं. मान्य वैल्यू global, application, और exclusive हैं.

    • global: सभी कैश एंट्री को एक ही Apigee "एनवायरमेंट" में मौजूद सभी Node.js ऐप्लिकेशन देख सकते हैं.

    • application: कैश मेमोरी में सेव की गई सभी एंट्री को उन सभी Node.js कैश में देखा जा सकता है जो एक ही Apigee Edge ऐप्लिकेशन के हिस्से हैं.

    • exclusive: (डिफ़ॉल्ट) कैश एंट्री सिर्फ़ Node.js कैश के ज़रिए, उसी ऐप्लिकेशन में दिखाई जाती हैं जिसका नाम एक जैसा होता है. यह डिफ़ॉल्ट रूप से होता है.

  • prefix: अगर कैश कुंजी के नाम में कोई प्रीफ़िक्स शामिल है, जैसा कि कैश मेमोरी से जुड़ी नीति और कैश कुंजी की मदद से काम करना में बताया गया है, तो इस पैरामीटर का इस्तेमाल करके, इसकी जानकारी दें. Edge, प्रीफ़िक्स के नाम के साथ अपने-आप डबल-अंडरस्कोर सफ़िक्स जोड़ देता है. इसलिए, अगर "UserToken" प्रीफ़िक्स के साथ कैश कुंजी बनाई गई है, तो यहां "UserToken__" प्रीफ़िक्स दिखेगा.

  • defaultTtl: इससे पता चलता है कि कैश मेमोरी में सेव की गई एंट्री के लाइव होने का डिफ़ॉल्ट समय सेकंड में क्या होना चाहिए. अगर इसकी जानकारी नहीं दी गई है, तो कैश रिसॉर्स में मौजूद डिफ़ॉल्ट TTL (टीटीएल) का इस्तेमाल किया जाएगा.

  • timeout: डिस्ट्रिब्यूट की गई कैश मेमोरी से कोई नतीजा पाने के लिए, कुछ सेकंड में कितना इंतज़ार करना होगा. डिफ़ॉल्ट 30 सेकंड. इंतज़ार का समय की संवेदनशील जानकारी वाले ऐप्लिकेशन इसे कम कर सकते हैं, ताकि कैश मेमोरी ओवरलोड होने पर जवाब मिलने में ज़्यादा समय लगे.

सामान लौटाना:

कैश मेमोरी का कस्टम ऑब्जेक्ट.

उदाहरण:

var apigee = require('apigee-access');
var customCache = apigee.getCache('doesNotMatter',
  { resource: 'MyCustomResource', scope: 'global', prefix: 'UserToken'} );
customCache.put("myCacheKey", "xyz");

यह इस तरह कॉन्फ़िगर की गई lookupकैश नीति के साथ काम करता है:

<LookupCache name="Lookup-Cache-1">
  <CacheKey>
    <Prefix>UserToken</prefix>    
    <KeyFragment>myCacheKey</KeyFragment>
  </CacheKey>
  <CacheResource>MyCustomResource</CacheResource>
  <Scope>Global</Scope>
  <AssignTo>contextVariable</AssignTo>
</LookupCache>

पुट

cache.put('key', data, ttl, function(error));

डेटा को कैश मेमोरी में डालें.

पैरामीटर:

  • key: (ज़रूरी है) एक ऐसी स्ट्रिंग जो कैश मेमोरी में मौजूद आइटम की पहचान करती है. कैश कुंजी का साइज़ 2 केबी तक सीमित हो सकता है.

  • data: (ज़रूरी है) वह स्ट्रिंग, बफ़र या ऑब्जेक्ट हो जो कैश मेमोरी में मौजूद डेटा को दिखाता है. किसी अन्य तरह के डेटा टाइप की वजह से गड़बड़ी होगी. सुविधा के लिए, "JSON.stringify" का इस्तेमाल करके, ऑब्जेक्ट को स्ट्रिंग में बदल दिया जाएगा.

  • ttl: (ज़रूरी नहीं) कैश मेमोरी में मौजूद डेटा को सेव रखने का ज़्यादा से ज़्यादा समय (सेकंड में). अगर कोई जानकारी नहीं दी गई है, तो डिफ़ॉल्ट TTL (टीटीएल) का इस्तेमाल किया जाएगा.

  • callback: (ज़रूरी नहीं) अगर बताया गया है, तो ऐसा फ़ंक्शन जिसे कैश में डेटा के सुरक्षित तरीके से पहुंचने के बाद कॉल किया जाएगा. अगर इंसर्शन में कोई गड़बड़ी होती है, तो इसे पहले पैरामीटर के तौर पर, 'गड़बड़ी' ऑब्जेक्ट के साथ कॉल किया जाएगा. ऐसा न होने पर, इसे बिना किसी पैरामीटर के कॉल किया जाएगा.

उदाहरण:

var apigee = require('apigee-access');
var cache = apigee.getCache();
// Insert a string into cache using the default TTL
cache.put('key1', 'Buenos dias, Mundo!');
// Insert a string into cache using a TTL of 120 seconds
cache.put('key2', 'Hello, World!', 120);
// Insert a string with the default TTL, and get notified when the insert is complete
cache.put('key3', 'Ciao, Mondo!', function(error) {
  // "error" will be falsy unless there was an error on insert
});
// Insert a string with a TTL of 600 seconds, and get notified when the insert is complete
cache.put('key4', 'Hallo Wereld!', 600, function(error) {
  // "error" will be falsy unless there was an error on insert
});

पाएं

cache.get('key', function(error, data));

कैश मेमोरी से डेटा वापस पाएं.

पैरामीटर:

  • key (ज़रूरी): एक ऐसी स्ट्रिंग जो कैश मेमोरी में मौजूद आइटम की खास तरीके से पहचान करती है.

    किसी Apigee Edge की नीति (जैसे कि कैश मेमोरी से जुड़ी नीति) की मदद से, कैश मेमोरी में सेव की गई एंट्री को कैश मेमोरी में सेव करने के लिए, आपको कैश कुंजी बनानी होगी. ऐसा करने के लिए, आपको उस खास तरीके से जानकारी देनी होगी जिससे यह पता चलता है कि नीति, एंट्री के लिए कुंजियां बनाती है. ऐसा करने के लिए, आपको यह जानना होगा कि नीति को कैसे कॉन्फ़िगर किया गया है. हालांकि, कैश कुंजियों के साथ काम करने से यह पता चलता है कि नीतियां किस तरह कैश कुंजियों को बनाती हैं, लेकिन इस बात का ध्यान रखें कि आपको स्कोप से जुड़ी स्ट्रिंग की वैल्यू तय नहीं करनी चाहिए. Node.js के कॉल में, स्कोप पहले से ही कॉन्टेक्स्ट का हिस्सा है.

  • callback (ज़रूरी है): यह एक ऐसा फ़ंक्शन है जिसे डेटा उपलब्ध होने पर कॉल किया जाएगा. अगर कैश मेमोरी में डेटा सेव किया जाता है, तो उसे दूसरे पैरामीटर में दिखाया जाता है.

    • error - कोई गड़बड़ी ऑब्जेक्ट. अगर कैश मेमोरी से डेटा वापस पाने के दौरान कोई गड़बड़ी होती है, तो यहां गड़बड़ी वाला ऑब्जेक्ट सेट हो जाएगा. ऐसा न करने पर, यह पैरामीटर "तय नहीं है" पर सेट कर दिया जाएगा.

    • data - अगर डेटा वापस लाया गया है, तो उसे. यह इन चार में से एक वैल्यू होगी:

      • अगर कोई स्ट्रिंग डाली गई है, तो वह एक स्ट्रिंग होगी.
      • अगर बफ़र डाला गया है, तो वह बफ़र होगा.
      • अगर कोई ऑब्जेक्ट डाला गया है, तो यह एक स्ट्रिंग होगी जिसमें ऑब्जेक्ट का JSON वर्शन होगा, जैसा कि "JSON.stringify" में बनाया गया है.
      • अगर कुछ भी नहीं मिलता है, तो यह "तय नहीं है" होगा.

उदाहरण:

var apigee = require('apigee-access');
var cache = apigee.getCache();
cache.get('key', function(error, data) {
  // If there was an error, then "error" will be set.
  // If error is falsy, "data" is the item that was retrieved:
  //   - undefined, in the case of cache miss, or
  //   - a Buffer, or
  //   - a String
});

हटाएं

cache.remove('key', function(error));

कैश मेमोरी में सेव किए गए आइटम को अमान्य करें. किसी कुंजी के अमान्य हो जाने के बाद, बाद के get() अनुरोध तब तक "तय नहीं हैं" के तौर पर दिखेंगे, जब तक कोई दूसरी वैल्यू नहीं डाली जाती.

पैरामीटर:

  • key (ज़रूरी है): यह एक ऐसी स्ट्रिंग है जो कैश मेमोरी में मौजूद उस आइटम की खास तौर पर पहचान करती है जिसकी पुष्टि अमान्य करनी है.

    किसी Apigee Edge की नीति (जैसे कि कैश मेमोरी से जुड़ी नीति) की मदद से, कैश मेमोरी में सेव की गई एंट्री को कैश मेमोरी में सेव करने के लिए, आपको कैश कुंजी बनानी होगी. ऐसा करने के लिए, आपको उस खास तरीके से जानकारी देनी होगी जिससे यह पता चलता है कि नीति, एंट्री के लिए कुंजियां बनाती है. ऐसा करने के लिए, आपको यह जानना होगा कि नीति को कैसे कॉन्फ़िगर किया गया है. हालांकि, कैश कुंजियों के साथ काम करने से यह पता चलता है कि नीतियां किस तरह कैश कुंजियों को बनाती हैं, लेकिन इस बात का ध्यान रखें कि आपको स्कोप से जुड़ी स्ट्रिंग की वैल्यू तय नहीं करनी चाहिए. Node.js के कॉल में, स्कोप पहले से ही कॉन्टेक्स्ट का हिस्सा है.

  • callback (ज़रूरी है): यह एक कॉलबैक फ़ंक्शन है, जिसे कोई गड़बड़ी होने पर, पहले पैरामीटर के तौर पर 'गड़बड़ी' ऑब्जेक्ट के साथ कॉल किया जाएगा.

उदाहरण:

var apigee = require('apigee-access');
var cache = apigee.getCache();
cache.remove('key', function(error) {
});