الوصول إلى ذاكرة التخزين المؤقت في Node.js

أنت تطّلع على مستندات Apigee Edge.
انتقِل إلى مستندات Apigee X.
info

يمكنك استخدام وحدة apigee-access للوصول إلى ذاكرة التخزين المؤقت الموزّعة في Edge من داخل تطبيق Node.js. تتضمّن الوحدة طرقًا للحصول على ملف cach ووضع البيانات والحصول عليها وإزالتها.

تسمح لك ذاكرة التخزين المؤقت الموزعة في 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 حيث يتم تخزين data في ذاكرة التخزين المؤقت. تُستخدَم موارد ذاكرة التخزين المؤقت لتحسين تخصيص الذاكرة وغيرها من معلمات الذاكرة المؤقتة. إذا لم يتم تحديده، سيتم استخدام مورد تلقائي. إذا لم يكن مورد ذاكرة التخزين المؤقت متوفّرًا، تُعرِض الطريقة خطأ.

  • 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");

تعمل هذه الطريقة مع سياسة WebRTCcache التي تم ضبطها على النحو التالي:

<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 - عنصر خطأ. في حال حدوث خطأ أثناء عملية الاسترداد من ذاكرة التخزين المؤقت، سيتم ضبط كائن "خطأ" هنا. بخلاف ذلك، سيتم ضبط هذه المَعلمة على "غير محدّد".

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