คุณกำลังดูเอกสารประกอบของ 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-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 ที่ใช้จัดเก็บข้อมูลแคช ทรัพยากรแคชใช้เพื่อปรับแต่งการจัดสรรหน่วยความจำและพารามิเตอร์แคชอื่นๆ หากไม่ได้ระบุไว้ ระบบจะใช้ทรัพยากรเริ่มต้น หากไม่มีทรัพยากรแคช เมธอดจะแสดงข้อผิดพลาด -
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
(จำเป็น): ฟังก์ชันที่จะเรียกใช้เมื่อมีข้อมูล หากมีข้อมูลที่แคชไว้ ระบบจะแสดงผลในพารามิเตอร์ที่ 2-
error
- ออบเจ็กต์ข้อผิดพลาด หากมีข้อผิดพลาดขณะดึงข้อมูลจากแคช ระบบจะตั้งค่าออบเจ็กต์ข้อผิดพลาดที่นี่ มิเช่นนั้นระบบจะตั้งค่าพารามิเตอร์นี้เป็น "undefined" -
data
- ข้อมูลที่ดึงมา (หากมี) โดยจะเป็นค่า 1 ใน 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() ที่ตามมาจะแสดงผลเป็น "undefined" เว้นแต่จะมีการแทรกค่าอื่น
พารามิเตอร์:
-
key
(ต้องระบุ): สตริงที่ระบุรายการในแคชโดยไม่ซ้ำกันเพื่อทำให้เป็นโมฆะสำหรับรายการแคชที่ใส่ไว้ในแคชจากนโยบาย Apigee Edge (เช่น นโยบายเติมแคช) คุณจะต้องสร้างคีย์แคชโดยอนุมานจากวิธีที่เฉพาะเจาะจงที่นโยบายสร้างคีย์สำหรับรายการ โดยจะต้องรู้วิธีกำหนดค่านโยบายก่อน แม้ว่าการใช้คีย์แคชอธิบายวิธีการสร้างคีย์แคชด้วยนโยบาย แต่โปรดทราบว่าคุณไม่ควรระบุค่าสตริงที่เกี่ยวข้องกับขอบเขต เนื่องจากในการเรียกใช้จาก Node.js ขอบเขตนั้นเป็นส่วนหนึ่งของบริบทอยู่แล้ว
-
callback
(ต้องระบุ): ฟังก์ชันเรียกกลับที่จะเรียกใช้โดยมีออบเจ็กต์ข้อผิดพลาดเป็นพารามิเตอร์แรกหากมีข้อผิดพลาด
ตัวอย่างเช่น
var apigee = require('apigee-access'); var cache = apigee.getCache(); cache.remove('key', function(error) { });