Class Cache

캐시

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

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

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를 가져옵니다.
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


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' would be: {'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'을 반복해서 호출하는 것과 유사하지만, memcache 서버를 한 번만 호출하여 모든 값을 설정하므로 더 효율적입니다. 키의 최대 길이는 250자(영문 기준)입니다. 키당 저장할 수 있는 최대 데이터 양은 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[]삭제할 키 배열