Node.js-এ ক্যাশে অ্যাক্সেস করা

আপনি Apigee Edge ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন দেখুন।
তথ্য

Node.js অ্যাপ্লিকেশনের মধ্যে থেকে Edge ডিস্ট্রিবিউট করা ক্যাশে অ্যাক্সেস করতে, আপনি apigee-access মডিউল ব্যবহার করতে পারবেন। এই মডিউলে ক্যাশে পাওয়া এবং ডেটা রাখা, পাওয়া ও সরানোর পদ্ধতি অন্তর্ভুক্ত।

Apigee Edge ডিস্ট্রিবিউট করা ক্যাশে আপনাকে স্ট্রিং বা অন্যান্য ডেটা সেভ করতে দেয়। বেশিরভাগ ক্যাশের মতো, এটি সর্বাধিক সাইজ সহ একটি সবচেয়ে কম সাম্প্রতিক ব্যবহৃত ক্যাশে। Apigee Edge-এর মধ্যে, আপনার Node.js অ্যাপ্লিকেশন যেখানে এক্সিকিউট করে, সেখানে সব নোডের মধ্যে ক্যাশে ডিস্ট্রিবিউট করা হয়। আপনি Apigee Edge API-এর মাধ্যমে ক্যাশে ম্যানেজ করতে পারবেন। API ব্যবহার করে, আপনি ম্যানুয়ালি ক্যাশে রিসোর্স তৈরি করতে পারেন অথবা ডিফল্ট রিসোর্স ব্যবহার করতে পারেন। Apigee Edge-এ ক্যাশিং সম্পর্কে জানতে, Edge-এ পারসিস্টেন্স টুল দেখুন। ডিস্ট্রিবিউট করা ক্যাশে সম্পর্কে আরও জানতে উদাহরণ: সাধারণ উদ্দেশ্যে ক্যাশে করা দেখুন।

apigee-access মডিউল ও এর অন্যান্য ফিচার সম্পর্কে জানতে, apigee-access মডিউল ব্যবহার করা দেখুন।

পদ্ধতি


(১) getCache

var cache = apigee.getCache(cacheName);

নামযুক্ত ক্যাশে খুঁজে দেখুন এবং প্রয়োজন হলে সেটি তৈরি করুন। এর ফলে যে ক্যাশে তৈরি হয়, তাতে আগে থেকে সংজ্ঞায়িত কনফিগারেশন প্যারামিটারের একটি সেট থাকে যা বেশিরভাগ পরিস্থিতির জন্য উপযুক্ত।

প্যারামিটার:

cacheName - একটি স্ট্রিং, এটি হল ক্যাশের নাম। (এটি ক্যাশে রিসোর্সের নাম নয়)।

ফেরত দেওয়া:

ক্যাশে অবজেক্ট।

উদাহরণ:

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

(২) getCache

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

কনফিগারেশন অবজেক্টে উল্লেখ করা কাস্টম ক্যাশে রিসোর্স অ্যাক্সেস করা। কীভাবে ক্যাশে রিসোর্স তৈরি করতে হয় সেই সম্পর্কে তথ্য পেতে, এনভায়রনমেন্ট ক্যাশে তৈরি ও এডিট করা দেখুন।

প্যারামিটার:

cacheName - একটি স্ট্রিং, কাস্টম ক্যাশের নাম। (ক্যাশে রিসোর্সের নাম নয়)

options - একটি কনফিগারেশন অবজেক্ট। অবজেক্টটি খালি থাকতে পারে অথবা এতে নিম্নলিখিত ঐচ্ছিক প্যারামিটার থাকতে পারে:

  • resource: Apigee "ক্যাশে রিসোর্স"-এর নাম যেখানে ক্যাশে ডেটা স্টোর করা হয়। মেমরি অ্যালোকেশন ও অন্যান্য ক্যাশে প্যারামিটার ফাইন-টিউন করতে ক্যাশে রিসোর্স ব্যবহার করা হয়। নির্দিষ্ট করা না থাকলে, একটি ডিফল্ট রিসোর্স ব্যবহার করা হবে। ক্যাশে রিসোর্স না থাকলে, মেথডটি একটি সমস্যা দেখায়।

  • scope: ক্যাশে এন্ট্রিগুলি সংঘর্ষ এড়াতে প্রিফিক্স করা আছে কিনা তা নির্দিষ্ট করে। সঠিক মান হল global, application এবং exclusive.

    • global: একই Apigee "এনভায়রনমেন্টে" সমস্ত Node.js অ্যাপ্লিকেশন সমস্ত ক্যাশে এন্ট্রি দেখতে পেতে পারে।

    • application: একই Apigee Edge অ্যাপ্লিকেশনের অংশ হলে, সব Node.js ক্যাশে সব ক্যাশে এন্ট্রি দেখা যেতে পারে।

    • exclusive: (ডিফল্ট) একই নামের একই অ্যাপ্লিকেশনের Node.js ক্যাশে এন্ট্রিগুলি শুধুমাত্র দেখা যায়। এটি ডিফল্ট হিসেবে সেট করা থাকে।

  • prefix: ক্যাশে কীয়ের নামে কোনও প্রিফিক্স থাকলে, যেমন ক্যাশে নীতি পূরণ করুন ও ক্যাশে কীয়ের সাথে কাজ করুন লিঙ্কে বর্ণনা করা আছে, এটি নির্দিষ্ট করতে এই প্যারামিটার ব্যবহার করুন। Edge অটোমেটিক প্রিফিক্স নামের সাথে ডবল আন্ডারস্কোর সাফিক্স যোগ করে। তাই, কোনও ক্যাশে কী "UserToken" প্রিফিক্স দিয়ে তৈরি করা হলে, এখানে উল্লেখ করার জন্য প্রিফিক্সটি হবে "UserToken__"।

  • defaultTtl: ক্যাশে এন্ট্রির ডিফল্ট মেয়াদ সেকেন্ডে উল্লেখ করে। উল্লেখ করা না থাকলে, ক্যাশে রিসোর্সে ডিফল্ট TTL ব্যবহার করা হবে। ব্যবহার করা হবে।

  • timeout: ডিস্ট্রিবিউট করা ক্যাশে থেকে ফলাফল পেতে কতক্ষণ অপেক্ষা করতে হবে, সেকেন্ডে। ডিফল্ট ৩০ সেকেন্ড। লেটেন্সি-সংবেদনশীল অ্যাপ্লিকেশনগুলি ক্যাশে ইনফ্রাস্ট্রাকচার ওভারলোড হয়ে গেলে ধীর গতির উত্তর এড়াতে এটি কমাতে চায়।

ফেরত দেওয়া:

কাস্টম ক্যাশে অবজেক্ট।

উদাহরণ:

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

এইভাবে কনফিগার করা LookupCache নীতির সাথে এটি কাজ করে:

<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: (প্রয়োজনীয়) ক্যাশে থাকা আইটেমকে অনন্যভাবে শনাক্ত করে এমন একটি স্ট্রিং। ক্যাশে কীয়ের সাইজ ২ কেবি পর্যন্ত সীমিত।

  • data: (প্রয়োজনীয়) একটি স্ট্রিং, বাফার বা অবজেক্ট যা ক্যাশে করার ডেটা বোঝায়। অন্য কোনও ডেটার ধরন ব্যবহার করলে সমস্যা হবে। সুবিধার জন্য, "JSON.stringify" ব্যবহার করে অবজেক্টকে স্ট্রিংয়ে কনভার্ট করা হবে।

  • ttl: (ঐচ্ছিক) ক্যাশে ডেটা সেভ করে রাখার সর্বাধিক সময়, সেকেন্ডে। নির্দিষ্ট করা না থাকলে, ডিফল্ট TTL ব্যবহার করা হবে।

  • callback: (ঐচ্ছিক) উল্লেখ করা থাকলে, এমন একটি ফাংশন যা ক্যাশে নিরাপদে ডেটা সেভ করার পরে কল করা হবে। ইনসার্শনে কোনও সমস্যা হলে, প্রথম প্যারামিটার হিসেবে Error অবজেক্ট সহ এটি কল করা হবে এবং অন্যথায় কোনও প্যারামিটার ছাড়াই এটি কল করা হবে।

উদাহরণ:

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 - একটি Error অবজেক্ট। ক্যাশে থেকে ডেটা রিট্রিভ করার সময় কোনও সমস্যা হলে, এখানে একটি Error অবজেক্ট সেট করা হবে। অন্যথায় এই প্যারামিটার "undefined" হিসেবে সেট করা হবে।

    • data - ফিরিয়ে আনা ডেটা, যদি থাকে। এটি চারটি মানের মধ্যে একটি হবে:

      • কোনও স্ট্রিং যোগ করা হলে, সেটি স্ট্রিং হিসেবেই থাকবে।
      • কোনও বাফার যোগ করা হলে, সেটি বাফার হিসেবেই থাকবে।
      • কোনও অবজেক্ট যোগ করা হলে, এটি "JSON.stringify" দ্বারা তৈরি করা অবজেক্টের JSON ভার্সন ধারণকারী একটি স্ট্রিং হবে।
      • কিছু খুঁজে না পাওয়া গেলে, এটি "অনির্ধারিত" হবে।

উদাহরণ:

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() অনুরোধগুলি "undefined" রিটার্ন করবে, যদি না অন্য কোনও মান ইনসার্ট করা হয়।

প্যারামিটার:

  • key (প্রয়োজনীয়): একটি স্ট্রিং যা বাতিল করার জন্য ক্যাশেতে থাকা আইটেমকে অনন্যভাবে শনাক্ত করে।

    Apigee Edge নীতি (যেমন ক্যাশে পপুলেট করার নীতি) থেকে ক্যাশে এন্ট্রি ক্যাশে করা হলে, আপনাকে নীতিটি এন্ট্রির জন্য যেভাবে কী তৈরি করে তা থেকে অনুমান করে ক্যাশে কী তৈরি করতে হবে। এটি করতে, নীতিটি কীভাবে কনফিগার করা হয় তা আপনাকে জানতে হবে। ক্যাশে কী নিয়ে কাজ করা বিষয়টি বর্ণনা করে যে কীভাবে নীতি ক্যাশে কী তৈরি করে, তবে মনে রাখবেন যে আপনাকে স্কোপ সম্পর্কিত স্ট্রিং ভ্যালু নির্দিষ্ট করতে হবে না; Node.js থেকে করা কলে, স্কোপ ইতিমধ্যেই কনটেক্সটের অংশ।

  • callback (প্রয়োজনীয়): একটি কলব্যাক ফাংশন যা কোনও সমস্যা হলে প্রথম প্যারামিটার হিসেবে একটি Error অবজেক্টের সাথে কল করা হবে।

উদাহরণ:

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