Truy cập vào bộ nhớ đệm trong Node.js

Bạn đang xem tài liệu về Apigee Edge.
Chuyển đến Tài liệu về Apigee X.
thông tin

Bạn có thể sử dụng mô-đun apigee-access để truy cập vào bộ nhớ đệm phân phối của Edge từ trong ứng dụng Node.js. Mô-đun này bao gồm các phương thức để nhận lưu vào bộ nhớ đệmđặt, nhậnxoá dữ liệu.

Bộ nhớ đệm phân phối Apigee Edge cho phép bạn lưu trữ các chuỗi hoặc dữ liệu khác. Giống như hầu hết các bộ nhớ đệm, là bộ nhớ đệm được dùng gần đây nhất và có kích thước tối đa. Bên trong Apigee Edge, bộ nhớ đệm sẽ được phân phối trong số tất cả các nút nơi ứng dụng Node.js thực thi. Bạn có thể quản lý bộ nhớ đệm thông qua API Apigee Edge. Bằng cách sử dụng API, bạn có thể tạo tài nguyên bộ nhớ đệm theo cách thủ công hoặc có thể dùng tài nguyên mặc định của bạn. Để tìm hiểu hướng dẫn về cách lưu vào bộ nhớ đệm trên Apigee Edge, hãy xem bài viết Công cụ lưu trữ liên tục trong Edge. Để tìm hiểu thêm về bộ nhớ đệm được phân phối, hãy xem Ví dụ: Mục đích chung lưu vào bộ nhớ đệm.

Để biết giới thiệu về mô-đun apigee-access và các tính năng khác của mô-đun này, hãy xem Sử dụng mô-đun truy cập apigee.

Phương thức


(1) getCache

var cache = apigee.getCache(cacheName);

Tra cứu bộ nhớ đệm đã đặt tên và tạo bộ nhớ đệm đó nếu cần. Bộ nhớ đệm kết quả sử dụng tập hợp được xác định trước của các thông số cấu hình phù hợp với hầu hết các trường hợp.

Các tham số:

cacheName – Chuỗi, tên của bộ nhớ đệm. (Không phải tên của tài nguyên bộ nhớ đệm).

Trường hợp trả lại hàng:

Đối tượng bộ nhớ đệm.

Ví dụ:

var apigee = require('apigee-access');
var cache = apigee.getCache('cache');

(2) getCache

var customCache = apigee.getCache(cacheName, options );

Truy cập vào tài nguyên bộ nhớ đệm tuỳ chỉnh được chỉ định trong đối tượng cấu hình. Để biết thông tin về cách để tạo tài nguyên bộ nhớ đệm, hãy xem phần Tạo và chỉnh sửa môi trường lưu vào bộ nhớ đệm.

Các tham số:

cacheName – Chuỗi, tên của bộ nhớ đệm tuỳ chỉnh. (Không phải tên của tài nguyên bộ nhớ đệm)

options – Đối tượng cấu hình. Chiến lược phát hành đĩa đơn đối tượng có thể trống hoặc có thể chứa các tham số không bắt buộc sau:

  • resource: Tên của một "tài nguyên bộ nhớ đệm" Apigee trong đó bộ nhớ đệm. Tài nguyên bộ nhớ đệm được dùng để tinh chỉnh quá trình phân bổ bộ nhớ và các bộ nhớ đệm khác tham số. Nếu không được chỉ định, hệ thống sẽ sử dụng tài nguyên mặc định. Nếu tài nguyên bộ nhớ đệm không tồn tại thì phương thức này sẽ gửi ra lỗi.

  • scope: Chỉ định xem các mục trong bộ nhớ đệm có được thêm tiền tố hay không ngăn chặn va chạm. Các giá trị hợp lệ là global, applicationexclusive.

    • global: Tất cả ứng dụng Node.js trong bộ nhớ đệm đều có thể xem tất cả các mục nhập trong bộ nhớ đệm cùng một "môi trường" Apigee.

    • application: Tất cả bộ nhớ đệm của Node.js đều có thể xem mọi mục bộ nhớ đệm của cùng một ứng dụng Apigee Edge.

    • exclusive: (Mặc định) Chỉ bộ nhớ đệm Node.js mới có thể thấy các mục nhập trong Bộ nhớ đệm trong cùng một ứng dụng có cùng tên. Đây là tuỳ chọn mặc định.

  • prefix: Nếu tên khoá bộ nhớ đệm có một tiền tố, chẳng hạn như được mô tả trong phần Điền Chính sách bộ nhớ đệmLàm việc với khoá bộ nhớ đệm, hãy sử dụng để chỉ định tham số này. Edge tự động thêm một hậu tố gạch dưới kép vào tên tiền tố. Vì vậy, nếu một khoá bộ nhớ đệm được tạo với tiền tố "UserToken", thì tiền tố để chỉ định đây là "UserToken__".

  • defaultTtl: Chỉ định thời gian tồn tại mặc định cho một bộ nhớ đệm tính bằng giây. Nếu không được chỉ định thì TTL mặc định trong tài nguyên bộ nhớ đệm sẽ là đã sử dụng.

  • timeout: Thời gian chờ để tìm nạp kết quả từ bộ nhớ đệm được phân phối tính bằng giây. Mặc định là 30 giây. Ứng dụng phân biệt độ trễ có thể muốn giảm thời gian này để ngăn thời gian phản hồi chậm nếu cơ sở hạ tầng bộ nhớ đệm bị quá tải.

Trường hợp trả lại hàng:

Đối tượng bộ nhớ đệm tuỳ chỉnh.

Ví dụ:

var apigee = require('apigee-access');
var customCache = apigee.getCache('doesNotMatter',
  { resource: 'MyCustomResource', scope: 'global', prefix: 'UserToken'} );
customCache.put("myCacheKey", "xyz");

Tính năng này hoạt động với chính sách LookupCache được định cấu hình như sau:

<LookupCache name="Lookup-Cache-1">
  <CacheKey>
    <Prefix>UserToken</prefix>    
    <KeyFragment>myCacheKey</KeyFragment>
  </CacheKey>
  <CacheResource>MyCustomResource</CacheResource>
  <Scope>Global</Scope>
  <AssignTo>contextVariable</AssignTo>
</LookupCache>

đặt

cache.put('key', data, ttl, function(error));

Đưa dữ liệu vào bộ nhớ đệm.

Các tham số:

  • key: (Bắt buộc) Một chuỗi xác định duy nhất mục đó trong bộ nhớ đệm. Khoá bộ nhớ đệm có kích thước giới hạn là 2 KB.

  • data: (Bắt buộc) Chuỗi, vùng đệm hoặc đối tượng biểu thị dữ liệu được lưu vào bộ nhớ đệm. Mọi loại dữ liệu khác đều sẽ dẫn đến lỗi. Để thuận tiện, các đối tượng sẽ được chuyển đổi thành một chuỗi bằng cách sử dụng "JSON.stringify".

  • ttl: (Không bắt buộc) Thời gian tối đa để duy trì vào bộ nhớ đệm, tính bằng giây. Nếu bạn không chỉ định thì TTL mặc định sẽ được sử dụng.

  • callback: (Không bắt buộc) Nếu được chỉ định, một hàm sẽ được gọi sau khi dữ liệu đã an toàn trong bộ nhớ đệm. Lệnh này sẽ được gọi bằng đối tượng Lỗi làm tham số đầu tiên nếu có lỗi chèn và nếu không tham số này sẽ được gọi bằng không có thông số.

Ví dụ:

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

nhận

cache.get('key', function(error, data));

Truy xuất dữ liệu từ bộ nhớ đệm.

Các tham số:

  • key (bắt buộc): Chuỗi xác định duy nhất mục đó trong bộ nhớ đệm.

    Đối với các mục nhập bộ nhớ đệm được đưa vào bộ nhớ đệm theo chính sách Apigee Edge (chẳng hạn như Điền chính sách bộ nhớ đệm), bạn sẽ cần tạo khoá bộ nhớ đệm bằng cách suy luận từ cách cụ thể mà chính sách tạo ra khoá cho các mục nhập. Để thực hiện việc này, bạn cần biết cách thiết lập chính sách này. Trong khi Thao tác với khoá bộ nhớ đệm mô tả cách các chính sách tạo ra khoá bộ nhớ đệm, nhưng xin lưu ý rằng bạn không nên chỉ định giá trị chuỗi liên quan đến phạm vi; trong các lệnh gọi từ Node.js, phạm vi đã là một phần của ngữ cảnh.

  • callback (bắt buộc): Một hàm sẽ được gọi khi có dữ liệu. Nếu có dữ liệu được lưu vào bộ nhớ đệm, dữ liệu này sẽ được trả về trong vòng thứ hai .

    • error – Đối tượng Lỗi. Nếu có lỗi trong khi truy xuất từ bộ nhớ đệm, thì đối tượng Lỗi sẽ được đặt ở đây. Nếu không thì chọn sẽ được đặt thành "không xác định".

    • data – Dữ liệu được truy xuất, nếu có. Sẽ là một trong bốn giá trị:

      • Nếu một chuỗi được chèn vào, thì đó sẽ là một chuỗi.
      • Nếu một Vùng đệm đã được chèn thì đó sẽ là một Vùng đệm.
      • Nếu một đối tượng được chèn, đối tượng đó sẽ là một chuỗi chứa phiên bản JSON của do "JSON.stringify tạo ra".
      • Nếu không tìm thấy kết quả nào, thì kết quả sẽ là "không xác định".

Ví dụ:

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

xoá

cache.remove('key', function(error));

Vô hiệu hoá mục đã lưu vào bộ nhớ đệm. Sau khi khoá không hợp lệ, các yêu cầu get() tiếp theo sẽ trả về "không xác định" trừ khi bạn chèn một giá trị khác.

Các tham số:

  • key (Bắt buộc): Một chuỗi giúp nhận dạng duy nhất mục trong bộ nhớ đệm để vô hiệu hoá.

    Đối với các mục nhập bộ nhớ đệm được đưa vào bộ nhớ đệm theo chính sách Apigee Edge (chẳng hạn như Điền chính sách bộ nhớ đệm), bạn sẽ cần tạo khoá bộ nhớ đệm bằng cách suy luận từ cách cụ thể mà chính sách tạo ra khoá cho các mục nhập. Để thực hiện việc này, bạn cần biết cách thiết lập chính sách này. Trong khi Xử lý khoá bộ nhớ đệm mô tả cách chính sách tạo ra khoá bộ nhớ đệm, nhưng xin lưu ý rằng bạn không nên chỉ định giá trị chuỗi liên quan đến phạm vi; trong các lệnh gọi từ Node.js, phạm vi đã là một phần của ngữ cảnh.

  • callback (Bắt buộc): Hàm callback sẽ được gọi với đối tượng Lỗi dưới dạng tham số đầu tiên nếu có lỗi.

Ví dụ:

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