ক্যাশে কী দিয়ে কাজ করা

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

ক্যাশে নীতিগুলি ব্যবহার করার সময়, আপনি ক্যাশে কীগুলি কনফিগার করে ক্যাশে মান কীগুলির স্বতন্ত্রতা নিশ্চিত করেন৷ একটি ক্যাশে কী, অন্যান্য মানগুলির সাথে যা আপনি কনফিগার করতে পারেন, আপনাকে একই ডেটা বের করার একটি নির্ভরযোগ্য উপায় দেয় যা আপনি রেখেছেন৷ আপনি পপুলেট ক্যাশে নীতি , লুকআপ ক্যাশে নীতি , অবৈধ ক্যাশে নীতি , এবং প্রতিক্রিয়া ক্যাশে নীতির সাথে ক্যাশে কীগুলি ব্যবহার করেন৷

কনফিগারেশন উপাদানের মান -- <CacheKey> / <KeyFragment> , <Scope> , এবং <Prefix> -- একটি শনাক্তকারী তৈরি করতে সংযুক্ত করা হয় যা আপনি ক্যাশে রাখা মানটির সাথে যুক্ত। আপনি মান পুনরুদ্ধার করতে এই একই কনফিগারেশন ব্যবহার করুন.

নিম্নলিখিত ক্যাশে নীতি কনফিগারেশন উপাদানগুলির সাথে, আপনি একটি ক্যাশে কী তৈরি করতে পারেন:

ক্যাশে কনফিগারেশন উপাদান বর্ণনা
<CacheKey> / <KeyFragment> ক্যাশে এন্ট্রিগুলির জন্য একটি অনন্য শনাক্তকারী নির্দিষ্ট করতে মিলিত <CacheKey> <KeyFragment> উপাদানগুলি ব্যবহার করুন। কীফ্র্যাগমেন্টের মানগুলি স্ট্যাটিক লিটারেল বা ভেরিয়েবল থেকে সেট করা হতে পারে।
<Scope> বা <Prefix> আরও নামস্থান ক্যাশে কীগুলির জন্য <Scope> বা <Prefix> উপাদানগুলি ব্যবহার করুন। <Scope> পূর্বনির্ধারিত মানগুলির একটি তালিকা গণনা করে। <Prefix> উপাদানটি আপনার নিজের পছন্দের মান দিয়ে <Scope> ওভাররাইড করে।

এই মানগুলি নিম্নলিখিত আকারে সংযুক্ত করা হয়েছে, <Scope> বা <Prefix> মানগুলি কীফ্র্যাগমেন্ট মানগুলি থেকে ডাবল-আন্ডারস্কোর দ্বারা পৃথক করা হয়েছে। একাধিক কীফ্র্যাগমেন্ট মানগুলিও ডবল আন্ডারস্কোর দ্বারা পৃথক করা হয়।

সুযোগ | উপসর্গ__কিফ্র্যাগমেন্ট [ __কিফ্র্যাগমেন্ট ]

রেসপন্স ক্যাশে নীতির সাথে, আপনি ঐচ্ছিকভাবে রেসপন্স অ্যাকসেপ্ট হেডার থেকে মান সহ এই ক্যাশে কী যুক্ত করতে পারেন।

<CacheKey> ব্যবহার করে

<CacheKey> উপাদানটি কনফিগার করে যে কিভাবে এজ এটি তৈরি করা প্রতিটি ক্যাশে এন্ট্রির জন্য একটি অনন্য শনাক্তকারী (একটি কী) তৈরি করবে। যখন এজ ক্যাশে করা মান পুনরুদ্ধার করে, তখন এটি সঠিক মান সনাক্ত করতে ক্যাশে কী ব্যবহার করে। ResponseCache নীতিতে, একটি কনফিগারেশন ক্যাশিং এবং পুনরুদ্ধার উভয়ের জন্য কী নির্ধারণ করে। PopulateCache এবং LookupCache নীতিতে, প্রতিটি নীতিতে অবশ্যই অভিন্ন <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>

রানটাইমে, ক্যাশে কী প্যারাম মানগুলিকে অন্তর্ভুক্ত করবে, যেমনটি নিম্নরূপ:

অন্যান্য_কী_অংশ __মান1__মূল্য2

মনে রাখবেন যে আপনি যখন প্যারামিটার থেকে মান সন্নিবেশ করার জন্য ভেরিয়েবল ব্যবহার করেন, তখন মানগুলি <KeyFragment> উপাদানের ক্রম দ্বারা প্রস্তাবিত ক্রমে একত্রিত হবে। এছাড়াও, মনে রাখবেন যে এজ শুধুমাত্র সেই মানগুলি ব্যবহার করবে যা আপনি বিশেষভাবে <KeyFragment> উপাদানগুলির সাথে উল্লেখ করেছেন। যদি আপনার অনুরোধের ক্যোয়ারী প্যারামিটার তালিকা পরিবর্তিত হয়, তাহলে ক্যাশে কী-তে বৈচিত্রগুলি গণনা করা হবে না।

একটি বিকল্প হল request.querystring ভেরিয়েবল ব্যবহার করা, যা ক্যাশে কী-এর অংশ হিসাবে আক্ষরিক অর্থে প্যারামিটারের সম্পূর্ণ স্ট্রিং সন্নিবেশ করায়। মনে রাখবেন যে এই পদ্ধতিটি সমস্ত প্যারামিটারের জন্য দায়ী, যদি পরামিতিগুলির ক্রম এক অনুরোধ থেকে পরবর্তীতে পরিবর্তিত হয় তবে কীটি ভিন্ন হবে। অন্য কথায়, param1=value1&param2=value2 এবং param2=value2&param1=value1 একই ক্যাশে কী মানতে পরিণত হয় না।

আপনি যে ভেরিয়েবলগুলি ব্যবহার করতে পারেন তার একটি তালিকার জন্য, ভেরিয়েবল রেফারেন্স দেখুন।

<Scope> এবং <Prefix> ব্যবহার করে

<Scope> এবং <Prefix> উপাদানগুলি একটি নামস্থান উপসর্গ সহ কীকে বৃদ্ধি করার একটি উপায় প্রদান করে। তারা যে মানগুলি উপস্থাপন করে তা আপনার ক্যাশে কীতে প্রিপেন্ড করা হয়।

<Scope> উপাদানটি ডিফল্টরূপে ব্যবহৃত হয়। এটি এমন একটি গণনা যার মানগুলি বিস্তৃত থেকে সংকীর্ণ, ডিফল্ট হিসাবে সবচেয়ে সংকীর্ণ সহ। এই ডিফল্ট মানটি ব্যবহার করা হয় যদি না আপনি অন্য একটি মান নির্দিষ্ট করেন বা একটি <Prefix> উপাদানের মান উল্লেখ না করেন। আপনি একটি <Prefix> উপাদান ব্যবহার করে <Scope> মানটিকে ওভাররাইড করতে পারেন, এবং তাই নামস্থানের জন্য একটি কাস্টম মান নির্দিষ্ট করুন।

উদাহরণস্বরূপ, <Scope> মান "গ্লোবাল" -- বিস্তৃত পরিধি -- সংস্থা এবং পরিবেশের নাম উপস্থাপন করে৷ তাই যদি আপনার প্রক্সি 'mycompany' নামক একটি প্রতিষ্ঠানে এবং 'prod' নামে একটি পরিবেশে স্থাপন করা হয়, তাহলে ফলাফল পূর্বনির্ধারিত মান নিম্নরূপ হবে:

কনফিগারেশন ফলাফল
<Scope>Global</Scope> mycompany__prod__

আপনি যদি উপরে সংজ্ঞায়িত ক্যাশে কী সহ গ্লোবাল স্কোপ ব্যবহার করেন, ফলাফলটি নিম্নরূপ:

কনফিগারেশন ফলাফল
<Scope>Global</Scope>
<CacheKey>
    <KeyFragment>hello</KeyFragment>
    <KeyFragment>world</KeyFragment>
<CacheKey>
mycompany__prod__hello__world .

LookupCache নীতিতে বর্ণিত হিসাবে, গ্লোবাল থেকে এক্সক্লুসিভ পর্যন্ত নির্দিষ্টতা বাড়ানোর জন্য সুযোগটি কনফিগার করা যেতে পারে। একটি এক্সক্লুসিভ স্কোপ হল সবচেয়ে সুনির্দিষ্ট, এবং তাই একটি প্রদত্ত ক্যাশের মধ্যে নেমস্পেস সংঘর্ষের ন্যূনতম ঝুঁকি উপস্থাপন করে। একটি এক্সক্লুসিভ স্কোপ সহ প্রতিটি ক্যাশে এন্ট্রি নিম্নলিখিত আকারে উপসর্গযুক্ত:

orgName__envName__apiProxyName__deployedRevisionNumber__proxy|TargetName__[serializedCacheKey]

উদাহরণস্বরূপ, <Scope> -এর জন্য এক্সক্লুসিভ মান ব্যবহার করে তৈরি করা একটি ক্যাশে কী নিচের মত দেখাবে:

apifactory__test__weatherapi__16__default__apiAccessToken