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

يتم الآن عرض مستندات Apigee Edge.
انتقِل إلى مستندات Apigee X.
المعلومات

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

تتيح لك ذاكرة التخزين المؤقت الموزعة Apigee Edge تخزين السلاسل أو البيانات الأخرى. وكما هي الحال مع معظم ذاكرات التخزين المؤقت، تعد ذاكرة التخزين المؤقت الأقل استخدامًا مع حد أقصى للحجم. داخل Apigee Edge، يتم توزيع ذاكرة التخزين المؤقت على جميع العُقد التي يتم فيها تنفيذ تطبيق Node.js. يمكنك إدارة ذاكرة التخزين المؤقت من خلال واجهة برمجة التطبيقات Apigee Edge. باستخدام واجهة برمجة التطبيقات، يمكنك إنشاء موارد ذاكرة تخزين مؤقت يدويًا أو يمكنك استخدام المورد التلقائي. للتعرُّف على مقدمة عن التخزين المؤقت على Apigee Edge، يُرجى الاطّلاع على أدوات الثبات في Edge. لمزيد من المعلومات حول ذاكرة التخزين المؤقت الموزَّعة، يمكنك الاطّلاع على مثال: التخزين المؤقت للأغراض العامة.

للاطّلاع على مقدمة عن وحدة apigee-access وميزاتها الأخرى، يمكنك الاطّلاع على استخدام وحدة الوصول إلى واجهة برمجة التطبيقات.

الطُرق


(1) الحصول على ذاكرة التخزين المؤقت

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: تحدد هذه السمة الوقت التلقائي الذي يستغرقه إدخال ذاكرة التخزين المؤقت بالثواني. في حال عدم تحديد هذه السمة، سيتم استخدام قيمة TTL التلقائية في مورد ذاكرة التخزين المؤقت.

  • 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: (مطلوبة) سلسلة أو مخزن مؤقت أو كائن يمثّل البيانات المخزَّنة في ذاكرة التخزين المؤقت. وسيؤدي أي نوع بيانات آخر إلى حدوث خطأ. ولتسهيل الأمر، سيتم تحويل العناصر إلى سلسلة باستخدام "JSON.stringify".

  • ttl: (اختياري) الحد الأقصى لوقت الاحتفاظ بالبيانات في ذاكرة التخزين المؤقت، بالثواني. في حال عدم تحديد قيمة لسمة مدة البقاء (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) {
});