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

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

Node.js ऐप्लिकेशन में एज डिस्ट्रिब्यूटेड कैश मेमोरी को ऐक्सेस करने के लिए, 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) getCache

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: यह कैश एंट्री के लिए बने डिफ़ॉल्ट समय के बारे में जानकारी देता है. यह समय, सेकंड में तय किया जाता है. अगर यह जानकारी नहीं दी जाती है, तो कैश रिसॉर्स में मौजूद डिफ़ॉल्ट टीटीएल का इस्तेमाल किया जाएगा.

  • 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>

put

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

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

पैरामीटर:

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

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

  • 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 - गड़बड़ी का ऑब्जेक्ट. अगर कैश मेमोरी से जानकारी हासिल करते समय कोई गड़बड़ी होती है, तो यहां गड़बड़ी का एक ऑब्जेक्ट सेट किया जाएगा. ऐसा न करने पर, इस पैरामीटर को "undefined" पर सेट कर दिया जाएगा.

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

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

उदाहरण:

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
});

remove

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

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

पैरामीटर:

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

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

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

उदाहरण:

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