أنت الآن بصدد الاطّلاع على مستندات Apigee Edge.
انتقِل إلىمستندات Apigee X. info
يمكنك استخدام وحدة apigee-access للوصول إلى ذاكرة التخزين المؤقت الموزّعة في Edge من
داخل تطبيق Node.js. تتضمّن الوحدة طرقًا للحصول على
ذاكرة تخزين مؤقت ووضع البيانات فيها والحصول عليها وإزالتها.
تتيح لك ذاكرة التخزين المؤقت الموزّعة في Apigee Edge تخزين السلاسل أو البيانات الأخرى. على غرار معظم ذاكرات التخزين المؤقت، هي ذاكرة تخزين مؤقت تستخدم سياسة "الأقل استخدامًا مؤخرًا" ويبلغ حجمها الأقصى حدًا معيّنًا. ضمن Apigee Edge، يتم توزيع ذاكرة التخزين المؤقت بين جميع العُقد التي يتم فيها تنفيذ تطبيق Node.js. يمكنك إدارة ذاكرة التخزين المؤقت من خلال واجهة برمجة تطبيقات Apigee Edge. باستخدام واجهة برمجة التطبيقات، يمكنك إنشاء موارد ذاكرة التخزين المؤقت يدويًا أو استخدام الـ مورد التلقائي. للحصول على مقدّمة عن التخزين المؤقت على Apigee Edge، يمكنك الاطّلاع على أدوات استمرار البيانات في Edge. لمزيد من المعلومات عن ذاكرة التخزين المؤقت الموزّعة، يمكنك الاطّلاع على مثال: التخزين المؤقت للأغراض العامة.
للحصول على مقدّمة عن الوحدة apigee-access وميزاتها الأخرى، يمكنك الاطّلاع على
استخدام وحدة apigee-access.
الطُرق
- (1) getCache
- (2) getCache
- وضع
- الحصول على
- إزالة
(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: يمكن لجميع تطبيقات Node.js في "البيئة" نفسها في Apigee الاطّلاع على جميع إدخالات ذاكرة التخزين المؤقت. -
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");
تعمل هذه الطريقة مع سياسة 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: (مطلوبة) سلسلة تحدّد العنصر بشكل فريد في ذاكرة التخزين المؤقت يقتصر حجم مفاتيح ذاكرة التخزين المؤقت على 2 كيلوبايت. -
data: (مطلوبة) سلسلة أو كائن Buffer أو كائن يمثّل البيانات المطلوب تخزينها مؤقتًا سيؤدي أي نوع بيانات آخر إلى حدوث خطأ. لتسهيل الأمر، سيتم تحويل الكائنات إلى سلسلة باستخدام "JSON.stringify". -
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 هنا. وبخلاف ذلك، سيتم ضبط هذه المَعلمة على "غير محدّدة". -
data: البيانات التي تم استردادها، إن توفّرت ستكون إحدى القيم الأربع التالية:- إذا تم إدراج سلسلة، ستكون سلسلة.
- إذا تم إدراج كائن Buffer، سيكون كائن Buffer.
- إذا تم إدراج كائن، سيكون سلسلة تحتوي على إصدار 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(مطلوبة): دالّة رد الاتصال التي سيتم استدعاؤها باستخدام كائن Error كالمَعلمة الأولى إذا حدث خطأ
مثال:
var apigee = require('apigee-access'); var cache = apigee.getCache(); cache.remove('key', function(error) { });