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 các chính sách để lưu trữ dữ liệu trong bộ nhớ đệm dùng cho mục đích chung để truy xuất nhanh hơn. Sử dụng các chính sách sau, proxy của bạn có thể lưu trữ và truy xuất dữ liệu đã lưu vào bộ nhớ đệm trong thời gian chạy:
- Điền chính sách Bộ nhớ đệm để thêm dữ liệu vào bộ nhớ đệm.
- Chính sách LookupCache để truy cập dữ liệu được lưu vào bộ nhớ đệm.
- Chính sách vô hiệu hoá bộ nhớ đệm để xoá bộ nhớ đệm.
Những chính sách này được thiết kế để lưu dữ liệu vào bộ nhớ đệm chung mà các proxy của bạn sử dụng.
Mã mẫu trong chủ đề này dựa trên proxy mẫu OAuth đi trên GitHub (xem Danh sách mẫu). Mẫu này sử dụng phương pháp chính sách bộ nhớ đệm để lưu trữ mã truy cập OAuth nhằm sử dụng lại cho nhiều lệnh gọi đi.
Mỗi loại chính sách được xác định bằng lược đồ XML (.xsd). Để tham khảo, giản đồ chính sách đều có trên GitHub.
Trong ví dụ sau, mã truy cập OAuth được ghi vào bộ nhớ đệm bằng FullCache . Mã thông báo OAuth được truy xuất cho các yêu cầu tiếp theo bằng chính sách LookupCache. Khi mã truy cập hết hạn, JavaScript được dùng để truy xuất mã truy cập mới. Mã này sẽ được lưu vào bộ nhớ đệm theo chính sách FillCache.
Điền vào bộ nhớ đệm
Sử dụng chính sách PopulateCache để ghi dữ liệu vào bộ nhớ đệm. Ví dụ này viết một quyền truy cập OAuth mã thông báo vào bộ nhớ đệm. Để biết thông tin tham khảo về chính sách, hãy xem Điền chính sách Bộ nhớ đệm.
<PopulateCache name="token-cache"> <!-- The cache to write to. --> <CacheResource>mycache</CacheResource> <!-- The source of the data, a variable containing the value. --> <Source>twitter-translate.apiAccessToken</Source> <!-- An enumeration representing a prefix for namespace scope. --> <Scope>Exclusive</Scope> <!-- A unique pointer (a flow variable value) to the data. Use this later to retrieve it. --> <CacheKey> <KeyFragment>apiAccessToken</KeyFragment> <KeyFragment ref="request.queryparam.client_id"></KeyFragment> </CacheKey> <!-- Entries placed into the cache with this policy will expire after 600 seconds. --> <ExpirySettings> <TimeoutInSec>600</TimeoutInSec> </ExpirySettings> </PopulateCache>
Các biến có thể được điền theo chính sách hoặc bằng mã. Biến Source
trong phương thức này
ví dụ được điền sẵn bằng lệnh gọi JavaScript sau:
context.setVariable('twitter-translate.apiAccessToken', getAccessToken());
Để biết thêm thông tin về khoá bộ nhớ đệm, hãy xem bài viết Làm việc với khoá bộ nhớ đệm.
Tra cứu dữ liệu đã lưu vào bộ nhớ đệm
Bạn có thể truy xuất các giá trị đã lưu vào bộ nhớ đệm bằng chính sách LookupCache. Chính sách LookupCache sau đây
đọc một giá trị từ mycache
và ghi giá trị đó vào
biến twitter-translate.apiAccessToken
. Để tham khảo chính sách
hãy xem chính sách LookupCache.
<LookupCache name="token-cache"> <!-- The cache to read from. --> <CacheResource>mycache</CacheResource> <!-- Where to assign the retrieved value - here, a variable. --> <AssignTo>twitter-translate.apiAccessToken</AssignTo> <!-- An enumeration representing a prefix for namespace scope. --> <Scope>Exclusive</Scope> <!-- The unique pointer (a flow variable value) that was used to store the data in the cache. --> <CacheKey> <KeyFragment>apiAccessToken</KeyFragment> <KeyFragment ref="request.queryparam.client_id"></KeyFragment> </CacheKey> </LookupCache>
Vô hiệu hoá bộ nhớ đệm
Bộ nhớ đệm có thể bị vô hiệu hoá một cách rõ ràng bằng cách chỉ định tiêu đề HTTP. Khi một yêu cầu mà chứa tiêu đề HTTP đã chỉ định mà hệ thống nhận được, thì bộ nhớ đệm sẽ được xoá. Để biết thông tin tham khảo về chính sách, hãy xem Chính sách về InvalidateCache.
<InvalidateCache name="InvalidateMyCache"> <!-- The cache to invalidate. --> <CacheResource>test-cache</CacheResource> <!-- An enumeration representing a prefix for namespace scope. --> <Scope>Exclusive</Scope> <!-- Fragments constructing the unique pointer used when the data was put into the cache. --> <CacheKey> <KeyFragment>apiAccessToken</KeyFragment> <KeyFragment ref="request.queryparam.client_id" /> </CacheKey> <PurgeChildEntries>true</PurgeChildEntries> </InvalidateCache>