<ph type="x-smartling-placeholder"></ph>
您正在查看 Apigee Edge 文档。
转到
Apigee X 文档。 信息
您可以使用 apigee-access
模块从以下位置访问 Edge 分布式缓存:
Node.js 应用。该模块包含用于获取
缓存、放置、获取和移除数据。
借助 Apigee Edge 分布式缓存,您可以存储字符串或其他数据。与大多数缓存一样 是最近最少使用且具有最大大小的缓存。在 Apigee Edge 内,缓存分布在 节点数量。您可以通过 Apigee Edge API。您可以使用 API 手动创建缓存资源,也可以使用 默认资源。如需了解 Apigee Edge 上的缓存简介,请参阅 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
:(默认)缓存条目仅对 多个具有同一名称的应用。这是默认值。
-
-
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 KB。 -
data
:(必需)一个字符串、缓冲区或对象, 表示要缓存的数据。任何其他数据类型都会导致错误。为方便起见, 对象将使用“JSON.stringify”转换为字符串。 -
ttl
:(可选)保存 缓存中的数据(以秒为单位)。如果未指定,系统将使用默认 TTL。 -
callback
:(可选)如果指定,则为 一旦数据安全地存储在缓存中,系统就会调用 。系统会在调用时返回 Error 对象 作为第一个参数,否则将通过 无参数。
示例:
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
- Error 对象。如果存在错误 从缓存中检索时,会在此处设置一个 Error 对象。否则, 参数将设为“undefined”。 -
data
- 检索到的数据(如果有)。时间是 以下四个值之一:- 如果插入的是字符串,该字符串将为字符串。
- 如果插入了 Buffer,则该 Buffer 将会是 Buffer。
- 如果插入了对象,它将成为包含 JSON 版本的 对象。
- 如果未找到任何结果,则此值将为“undefined”。
-
示例:
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
(必需):一个回调函数,用于 如果出现错误,则使用 Error 对象作为第一个参数进行调用。
示例:
var apigee = require('apigee-access'); var cache = apigee.getCache(); cache.remove('key', function(error) { });