Class Cache

캐시

특정 캐시에 대한 참조입니다.

이 클래스를 사용하면 캐시에서 항목을 삽입, 검색, 삭제할 수 있습니다. 이는 특히 비용이 많이 들거나 느린 리소스에 자주 액세스하려는 경우에 유용합니다. 예를 들어 가져오는 데 20초가 걸리는 example.com의 RSS 피드가 있지만 평균 요청에서 액세스 속도를 높이고 싶다고 가정해 보겠습니다.

function getRssFeed() {
  const cache = CacheService.getScriptCache();
  const cached = cache.get('rss-feed-contents');
  if (cached != null) {
    return cached;
  }
  const result = UrlFetchApp.fetch(
      'http://example.com/my-slow-rss-feed.xml');  // takes 20 seconds
  const contents = result.getContentText();
  cache.put('rss-feed-contents', contents, 1500);  // cache for 25 minutes
  return contents;
}

항목이 캐시에 없으면 20초를 기다려야 하지만, 25분 후에 캐시에서 항목이 만료될 때까지 후속 호출은 매우 빠릅니다.

메서드

메서드반환 유형간략한 설명
get(key)String|null지정된 키의 캐시된 값을 가져옵니다. 값이 없으면 null을 가져옵니다.
getAll(keys)Object키 배열의 캐시에 있는 모든 키/값 쌍이 포함된 JavaScript 객체를 반환합니다.
put(key, value)void캐시에 키/값 쌍을 추가합니다.
put(key, value, expirationInSeconds)void만료 시간 (초)과 함께 키-값 쌍을 캐시에 추가합니다.
putAll(values)void캐시에 키-값 쌍 집합을 추가합니다.
putAll(values, expirationInSeconds)void만료 시간 (초)과 함께 키/값 쌍을 캐시에 추가합니다.
remove(key)void지정된 키를 사용하여 캐시에서 항목을 삭제합니다.
removeAll(keys)void캐시에서 항목 집합을 삭제합니다.

자세한 문서

get(key)

지정된 키의 캐시된 값을 가져옵니다. 값이 없으면 null을 가져옵니다.

// Gets the value from the cache for the key 'foo'.
const value = CacheService.getScriptCache().get('foo');

매개변수

이름유형설명
keyString캐시에서 조회할 키입니다.

리턴

String|null - 캐시된 값입니다. 값이 없는 경우 null입니다.


getAll(keys)

키 배열의 캐시에 있는 모든 키/값 쌍이 포함된 JavaScript 객체를 반환합니다.

// Gets a set of values from the cache
const values = CacheService.getDocumentCache().getAll(['foo', 'x', 'missing']);
// If there were values in the cache for 'foo' and 'x' but not 'missing', then
// 'values' is: {'foo': 'somevalue', 'x': 'othervalue'}

매개변수

이름유형설명
keysString[]조회할 키입니다.

리턴

Object - 캐시에서 발견된 모든 키의 키/값 쌍을 포함하는 JavaScript 객체입니다.

참고 항목


put(key, value)

캐시에 키/값 쌍을 추가합니다.

키의 최대 길이는 250자입니다. 키당 저장할 수 있는 최대 데이터 양은 100KB입니다. 값은 600초 (10분) 후에 캐시에서 만료됩니다.

캐시된 항목의 한도는 1,000개입니다. 1,000개가 넘는 항목이 작성되면 캐시는 만료일이 가장 먼 900개의 항목을 저장합니다. 이 한도는 변경될 수 있습니다.

const cache = CacheService.getScriptCache();
// Puts the value 'bar' into the cache using the key 'foo'
cache.put('foo', 'bar');

매개변수

이름유형설명
keyString값을 저장할 키입니다.
valueString캐시할 값입니다.

put(key, value, expirationInSeconds)

만료 시간 (초)과 함께 키-값 쌍을 캐시에 추가합니다.

키의 최대 길이는 250자입니다. 키당 저장할 수 있는 최대 데이터 양은 100KB입니다. 지정된 만료 시간은 제안일 뿐입니다. 캐시된 데이터가 많은 경우 이 시간 전에 캐시된 데이터가 삭제될 수 있습니다.

캐시된 항목의 한도는 1,000개입니다. 1,000개가 넘는 항목이 작성되면 캐시는 만료일이 가장 먼 900개의 항목을 저장합니다. 이 한도는 변경될 수 있습니다.

// Puts the value 'bar' into the cache using the key 'foo', but only for the
// next 20 seconds.
CacheService.getScriptCache().put('foo', 'bar', 20);

매개변수

이름유형설명
keyString값을 저장할 키입니다.
valueString캐시할 값입니다.
expirationInSecondsInteger값이 캐시에 남아 있는 최대 시간(초)입니다. 최솟값은 1초이고 최댓값은 21,600초 (6시간)입니다.

putAll(values)

캐시에 키-값 쌍 집합을 추가합니다.

'put'에 대한 반복 호출과 유사하지만 키당 저장할 수 있는 데이터 양이 100KB이므로 한 번만 호출하여 더 효율적입니다. 값은 600초 (10분) 후에 캐시에서 만료됩니다.

캐시된 항목의 한도는 1,000개입니다. 1,000개가 넘는 항목이 작성되면 캐시는 만료일이 가장 먼 900개의 항목을 저장합니다. 이 한도는 변경될 수 있습니다.

// Puts a set of values into the cache with the keys 'foo', 'x', and 'key'.
const values = {
  foo: 'bar',
  x: 'y',
  key: 'value',
};
CacheService.getUserCache().putAll(values);

매개변수

이름유형설명
valuesObject문자열 키와 값을 포함하는 JavaScript 객체입니다.

참고 항목


putAll(values, expirationInSeconds)

만료 시간 (초)과 함께 키/값 쌍을 캐시에 추가합니다.

'put'을 반복적으로 호출하는 것과 유사하지만 모든 값을 설정하기 위해 memcache 서버를 한 번만 호출하므로 더 효율적입니다. 키의 최대 길이는 250자입니다. 키당 저장할 수 있는 최대 데이터 양은 100KB입니다. 지정된 만료 시간은 제안일 뿐입니다. 캐시된 데이터가 많은 경우 이 시간 전에 캐시된 데이터가 삭제될 수 있습니다.

캐시된 항목의 한도는 1,000개입니다. 1,000개가 넘는 항목이 작성되면 캐시는 만료일이 가장 먼 900개의 항목을 저장합니다. 이 한도는 변경될 수 있습니다.

// Puts a set of values into the cache with the keys 'foo', 'x', and 'key'.
const values = {
  foo: 'bar',
  x: 'y',
  key: 'value',
};
CacheService.getUserCache().putAll(values, 20);

매개변수

이름유형설명
valuesObject문자열 키와 값을 포함하는 JavaScript 객체입니다.
expirationInSecondsInteger값이 캐시에 남아 있는 최대 시간(초)입니다. 허용되는 최소 만료 시간은 1초이고 허용되는 최대 만료 시간은 21,600초(6시간)입니다. 기본 만료 시간은 600초 (10분)입니다.

참고 항목


remove(key)

지정된 키를 사용하여 캐시에서 항목을 삭제합니다.

// Removes any cache entries for 'foo'
CacheService.getUserCache().remove('foo');

매개변수

이름유형설명
keyString캐시에서 삭제할 키입니다.

removeAll(keys)

캐시에서 항목 집합을 삭제합니다.

// Removes entries from the cache with keys 'foo' and 'x'
CacheService.getDocumentCache().removeAll(['foo', 'x']);

매개변수

이름유형설명
keysString[]삭제할 키의 배열입니다.