현재 Apigee Edge 문서가 표시되고 있습니다.
Apigee X 문서로 이동 정보
apigee-access
모듈을 사용하여 Node.js 애플리케이션 내에서 에지 분산 캐시에 액세스할 수 있습니다. 모듈에는 데이터 캐시 가져오기와 삽입, 가져오기, 삭제 메서드가 포함됩니다.
Apigee Edge 분산 캐시를 사용하면 문자열이나 기타 데이터를 저장할 수 있습니다. 대부분의 캐시와 마찬가지로 최대 크기가 있으며 가장 오래전에 사용된 캐시입니다. Apigee Edge 내부에서 캐시는 Node.js 애플리케이션이 실행되는 모든 노드에 분산됩니다. 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
: 동일한 Apigee '환경'의 모든 Node.js 애플리케이션에서 모든 캐시 항목을 볼 수 있습니다. -
application
: 동일한 Apigee Edge 애플리케이션의 일부인 모든 Node.js 캐시에서 모든 캐시 항목을 볼 수 있습니다. -
exclusive
: (기본값) 캐시 항목은 이름이 같은 동일한 애플리케이션의 Node.js 캐시에서만 볼 수 있습니다. 이는 기본값입니다.
-
-
prefix
: 캐시 정책 채우기 및 캐시 키 작업에서 설명한 대로 캐시 키 이름에 프리픽스가 포함된 경우 이 매개변수를 사용하여 프리픽스를 지정합니다. Edge는 프리픽스 이름에 이중 밑줄 서픽스를 자동으로 추가합니다. 따라서 'UserToken' 프리픽스로 캐시 키를 생성한 경우 여기에서 지정할 프리픽스는 'UserToken__'입니다. -
defaultTtl
: 캐시 항목의 기본 TTL(수명)을 초 단위로 지정합니다. 지정하지 않으면 캐시 리소스의 기본 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>
put
cache.put('key',
data, ttl, function(error));
캐시에 데이터를 넣습니다.
매개변수:
-
key
: (필수) 캐시에서 항목을 고유하게 식별하는 문자열입니다. 캐시 키의 크기는 2KB로 제한됩니다. -
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
- 오류 객체입니다. 캐시에서 검색하는 중에 오류가 발생하면 여기에 오류 객체가 설정됩니다. 그렇지 않으면 이 매개변수가 'undefined'로 설정됩니다. -
data
- 검색된 데이터입니다(있는 경우). 다음 네 가지 값 중 하나입니다.- 문자열이 삽입된 경우 문자열이 됩니다.
- 버퍼가 삽입되면 버퍼가 됩니다.
- 객체가 삽입된 경우 'JSON.stringify'에서 생성된 객체의 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() 요청에서는 'undefined'를 반환합니다.
매개변수:
-
key
(필수): 무효화할 캐시의 항목을 고유하게 식별하는 문자열입니다.Apigee Edge 정책의 캐시에 저장된 캐시 항목 (예: 캐시 정책 채우기)의 경우 정책이 항목의 키를 만드는 특정 방법에서 추론하여 캐시 키를 구성해야 합니다. 이렇게 하려면 정책이 어떻게 구성되어 있는지 알아야 합니다. 캐시 키 사용에서는 정책에서 캐시 키를 만드는 방법을 설명하지만 범위와 관련된 문자열 값을 지정해서는 안 됩니다. Node.js에서의 호출에서는 범위가 이미 컨텍스트의 일부입니다.
-
callback
(필수): 오류가 있는 경우 Error 객체를 첫 번째 매개변수로 하여 호출할 콜백 함수입니다.
예:
var apigee = require('apigee-access'); var cache = apigee.getCache(); cache.remove('key', function(error) { });