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 , если оно не найдено.
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');

Параметры

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

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

String — кэшированное значение или ноль, если ничего не найдено.


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'}

Параметры

Имя Тип Описание
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 значение, которое нужно кэшировать
expirationInSeconds Integer максимальное время, в течение которого значение остается в кеше, в секундах. Минимальное значение — 1 секунда, максимальное — 21600 секунд (6 часов).

putAll(values)

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

Аналогично повторяющимся вызовам «put», но более эффективно, поскольку для установки всех значений выполняется только один вызов сервера memcache. Максимальная длина ключа — 250 символов. Максимальный объем данных, который может храниться на ключе, составляет 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, содержащий строковые ключи и значения

См. также


putAll(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, содержащий строковые ключи и значения.
expirationInSeconds Integer Максимальное время, в течение которого значение остается в кеше, в секундах. Минимально допустимый срок действия — 1 секунда, а максимально допустимый срок действия — 21600 секунд (6 часов). Срок действия по умолчанию составляет 600 секунд (10 минут).

См. также


remove(key)

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

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

Параметры

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

removeAll(keys)

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

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

Параметры

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