Class Cache

Кэш

Ссылка на конкретный кэш.

Этот класс позволяет добавлять, извлекать и удалять элементы из кэша. Это может быть особенно полезно, когда вам нужен частый доступ к дорогостоящему или медленно работающему ресурсу. Например, предположим, у вас есть RSS-лента на example.com, загрузка которой занимает 20 секунд, но вы хотите ускорить доступ к ней при среднем количестве запросов.

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 , если таковое не найдено.
get All(keys) Object Возвращает объект JavaScript, содержащий все пары ключ/значение, найденные в кэше для массива ключей.
put(key, value) void Добавляет пару ключ/значение в кэш.
put(key, value, expirationInSeconds) void Добавляет в кэш пару ключ/значение с указанием времени истечения срока действия (в секундах).
put All(values) void Добавляет в кэш набор пар ключ/значение.
put All(values, expirationInSeconds) void Добавляет в кэш набор пар ключ/значение с указанием времени истечения срока действия (в секундах).
remove(key) void Удаляет запись из кэша, используя заданный ключ.
remove All(keys) void Удаляет набор записей из кэша.

Подробная документация

get(key)

Получает кэшированное значение для заданного ключа или null , если таковое не найдено.

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

Параметры

Имя Тип Описание
key String Ключ для поиска в кэше.

Возвращаться

String|null — Кэшированное значение или null , если значение не было найдено.


get All(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'}

Параметры

Имя Тип Описание
keys String[] Ключи для поиска.

Возвращаться

Object — объект JavaScript, содержащий пары ключ/значение для всех ключей, найденных в кэше.

См. также


put(key, value)

Добавляет пару ключ/значение в кэш.

Максимальная длина ключа составляет 250 символов. Максимальный объем данных, который может храниться на одном ключе, составляет 100 КБ. Значение удаляется из кэша через 600 секунд (10 минут).

Максимальное количество кэшированных элементов составляет 1000. Если записано более 1000 элементов, кэш сохраняет 900 элементов, наиболее удаленных от истечения срока действия. Это ограничение может измениться.

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

Параметры

Имя Тип Описание
key String Ключ, под которым будет храниться значение.
value String Значение, которое необходимо кэшировать.

put(key, value, expirationInSeconds)

Добавляет в кэш пару ключ/значение с указанием времени истечения срока действия (в секундах).

Максимальная длина ключа составляет 250 символов. Максимальный объем данных, который может храниться на одном ключе, составляет 100 КБ. Указанное время истечения срока действия является лишь рекомендацией; кэшированные данные могут быть удалены раньше этого времени, если их слишком много.

Максимальное количество кэшированных элементов составляет 1000. Если записано более 1000 элементов, кэш сохраняет 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);

Параметры

Имя Тип Описание
key String Ключ, под которым будет храниться значение.
value String Значение, которое необходимо кэшировать.
expiration In Seconds Integer Максимальное время, в течение которого значение остается в кэше, в секундах. Минимальное значение — 1 секунда, максимальное — 21600 секунд (6 часов).

put All(values)

Добавляет в кэш набор пар ключ/значение.

Аналогично многократным вызовам функции «put», но более эффективно, поскольку выполняется только один вызов, а объем данных, который можно сохранить для каждого ключа, составляет 100 КБ. Значения удаляются из кэша через 600 секунд (10 минут).

Максимальное количество кэшированных элементов составляет 1000. Если записано более 1000 элементов, кэш сохраняет 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);

Параметры

Имя Тип Описание
values Object Объект JavaScript, содержащий строковые ключи и значения.

См. также


put All(values, expirationInSeconds)

Добавляет в кэш набор пар ключ/значение с указанием времени истечения срока действия (в секундах).

Аналогично многократным вызовам функции «put», но более эффективно, поскольку для установки всех значений выполняется только один вызов к серверу memcache. Максимальная длина ключа составляет 250 символов. Максимальный объем данных, который может храниться на одном ключе, составляет 100 КБ. Указанное время истечения срока действия является лишь рекомендацией; кэшированные данные могут быть удалены раньше этого времени, если их слишком много.

Максимальное количество кэшированных элементов составляет 1000. Если записано более 1000 элементов, кэш сохраняет 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);

Параметры

Имя Тип Описание
values Object Объект JavaScript, содержащий строковые ключи и значения.
expiration In Seconds Integer Максимальное время хранения значения в кэше (в секундах). Минимально допустимый срок действия — 1 секунда, максимально допустимый — 21600 секунд (6 часов). Срок действия по умолчанию — 600 секунд (10 минут).

См. также


remove(key)

Удаляет запись из кэша, используя заданный ключ.

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

Параметры

Имя Тип Описание
key String Ключ для удаления из кэша.

remove All(keys)

Удаляет набор записей из кэша.

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

Параметры

Имя Тип Описание
keys String[] Массив ключей для удаления.