การเข้าถึงแคชใน Node.js

คุณกำลังดูเอกสารประกอบ Apigee Edge
ไปที่ เอกสารประกอบเกี่ยวกับ Apigee X.
ข้อมูล

คุณสามารถใช้โมดูล apigee-access เพื่อเข้าถึงแคชที่กระจายของ Edge ได้จาก ภายในแอปพลิเคชัน Node.js โมดูลนี้จะรวมถึงวิธีการต่างๆ ในการรับ แคช และการป้อน การรับ และการนำออก

แคชแบบกระจายของ Apigee Edge ให้คุณจัดเก็บสตริงหรือข้อมูลอื่นๆ ได้ เช่นเดียวกับแคชส่วนใหญ่ เป็นแคชที่เพิ่งใช้งานล่าสุดโดยมีขนาดสูงสุด ใน Apigee Edge ระบบจะกระจายแคช ท่ามกลางโหนดทั้งหมดที่แอปพลิเคชัน Node.js ของคุณดำเนินการ คุณสามารถจัดการแคชผ่าน Apigee Edge API คุณสามารถใช้ API ในการสร้างแหล่งข้อมูลแคชด้วยตนเอง หรือใช้ ทรัพยากรเริ่มต้น สำหรับข้อมูลเบื้องต้นเกี่ยวกับการแคชบน Apigee Edge โปรดดูเครื่องมือ Persistence ใน Edge เพื่อดูข้อมูลเพิ่มเติม เกี่ยวกับแคชที่กระจาย โปรดดูตัวอย่าง: จุดประสงค์ทั่วไป การแคช

สำหรับข้อมูลเบื้องต้นเกี่ยวกับโมดูล apigee-access และฟีเจอร์อื่นๆ ของโมดูลนี้ โปรดดู การใช้โมดูลการเข้าถึง Apigee

เมธอด


(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 จะเพิ่มค่าต่อท้ายเครื่องหมายขีดล่าง 2 ขีดลงในพารามิเตอร์ ชื่อนำหน้า ดังนั้น หากสร้างคีย์แคชด้วยคำนำหน้า "UserToken" คำนำหน้าที่จะระบุ นี่คือ "UserToken__"

  • defaultTtl: ระบุ Time to Live เริ่มต้นสำหรับแคช ในหน่วยวินาที หากไม่ได้ระบุไว้ ระบบจะใช้ 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 KB

  • 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 - ออบเจ็กต์ข้อผิดพลาด หากมีข้อผิดพลาด ขณะดึงข้อมูลจากแคช ออบเจ็กต์ข้อผิดพลาดจะตั้งค่าไว้ที่นี่ หรือไม่เช่นนั้น จะได้รับการตั้งค่าเป็น "undefined"

    • data - ข้อมูลที่ดึงมา (หากมี) จะเป็น หนึ่งใน 4 ค่า ได้แก่

      • หากแทรกสตริงไว้ สตริงนั้นจะเป็นสตริง
      • หากแทรกบัฟเฟอร์ ก็จะเป็นบัฟเฟอร์
      • หากมีการแทรกออบเจ็กต์ ออบเจ็กต์นั้นจะเป็นสตริงที่มีเวอร์ชันของ 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 (ต้องระบุ): ฟังก์ชัน Callback ที่จะ ด้วยออบเจ็กต์ Error เป็นพารามิเตอร์แรก หากมีข้อผิดพลาด

ตัวอย่างเช่น

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