Class Cache

حافظه پنهان

ارجاع به یک حافظه پنهان خاص.

این کلاس به شما امکان می‌دهد موارد را از یک حافظه پنهان (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 مقدار ذخیره شده در حافظه پنهان (cache) برای کلید داده شده را برمی‌گرداند، یا در صورت عدم یافتن، null برمی‌گرداند.
get All(keys) Object یک شیء جاوا اسکریپت حاوی تمام جفت‌های کلید/مقدار موجود در حافظه پنهان برای آرایه‌ای از کلیدها را برمی‌گرداند.
put(key, value) void یک جفت کلید/مقدار به حافظه پنهان اضافه می‌کند.
put(key, value, expirationInSeconds) void یک جفت کلید/مقدار به حافظه پنهان اضافه می‌کند، به همراه زمان انقضا (برحسب ثانیه).
put All(values) void مجموعه‌ای از جفت‌های کلید/مقدار را به حافظه پنهان اضافه می‌کند.
put All(values, expirationInSeconds) void مجموعه‌ای از جفت‌های کلید/مقدار را به حافظه پنهان (cache) اضافه می‌کند، به همراه زمان انقضا (برحسب ثانیه).
remove(key) void با استفاده از کلید داده شده، یک ورودی را از حافظه پنهان حذف می‌کند.
remove All(keys) void مجموعه‌ای از ورودی‌ها را از حافظه پنهان حذف می‌کند.

مستندات دقیق

get(key)

مقدار ذخیره شده در حافظه پنهان (cache) برای کلید داده شده را برمی‌گرداند، یا در صورت عدم یافتن، null برمی‌گرداند.

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

پارامترها

نام نوع توضیحات
key String کلید جستجو در حافظه پنهان.

بازگشت

String|null — مقدار ذخیره شده در حافظه پنهان، یا null در صورتی که هیچ مقداری یافت نشد.


getAll(keys)

یک شیء جاوا اسکریپت حاوی تمام جفت‌های کلید/مقدار موجود در حافظه پنهان برای آرایه‌ای از کلیدها را برمی‌گرداند.

// 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 - یک شیء جاوا اسکریپت که شامل جفت‌های کلید/مقدار برای تمام کلیدهای موجود در حافظه پنهان است.

همچنین ببینید


put(key, value)

یک جفت کلید/مقدار به حافظه پنهان اضافه می‌کند.

حداکثر طول یک کلید ۲۵۰ کاراکتر است. حداکثر مقدار داده‌ای که می‌توان در هر کلید ذخیره کرد ۱۰۰ کیلوبایت است. این مقدار پس از ۶۰۰ ثانیه (۱۰ دقیقه) از حافظه پنهان (cache) منقضی می‌شود.

حداکثر تعداد آیتم‌های ذخیره‌شده در حافظه پنهان ۱۰۰۰ است. اگر بیش از ۱۰۰۰ آیتم نوشته شده باشد، حافظه پنهان ۹۰۰ آیتمی را که از تاریخ انقضا دورتر هستند، ذخیره می‌کند. این محدودیت ممکن است تغییر کند.

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)

یک جفت کلید/مقدار به حافظه پنهان اضافه می‌کند، به همراه زمان انقضا (برحسب ثانیه).

حداکثر طول یک کلید ۲۵۰ کاراکتر است. حداکثر مقدار داده‌ای که می‌توان در هر کلید ذخیره کرد ۱۰۰ کیلوبایت است. زمان انقضای مشخص شده فقط یک پیشنهاد است؛ اگر داده‌های زیادی در حافظه پنهان ذخیره شده باشند، ممکن است داده‌های ذخیره شده قبل از این زمان حذف شوند.

حداکثر تعداد آیتم‌های ذخیره‌شده در حافظه پنهان ۱۰۰۰ است. اگر بیش از ۱۰۰۰ آیتم نوشته شده باشد، حافظه پنهان ۹۰۰ آیتمی را که از تاریخ انقضا دورتر هستند، ذخیره می‌کند. این محدودیت ممکن است تغییر کند.

// 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 حداکثر زمانی که مقدار در حافظه پنهان باقی می‌ماند، بر حسب ثانیه. حداقل ۱ ثانیه و حداکثر ۲۱۶۰۰ ثانیه (۶ ساعت) است.

putAll(values)

مجموعه‌ای از جفت‌های کلید/مقدار را به حافظه پنهان اضافه می‌کند.

مشابه فراخوانی‌های مکرر برای "put"، اما کارآمدتر است زیرا فقط یک فراخوانی انجام می‌دهد و مقدار داده‌ای که می‌تواند برای هر کلید ذخیره شود ۱۰۰ کیلوبایت است. مقادیر پس از ۶۰۰ ثانیه (۱۰ دقیقه) از حافظه پنهان (cache) منقضی می‌شوند.

حداکثر تعداد آیتم‌های ذخیره‌شده در حافظه پنهان ۱۰۰۰ است. اگر بیش از ۱۰۰۰ آیتم نوشته شده باشد، حافظه پنهان ۹۰۰ آیتمی را که از تاریخ انقضا دورتر هستند، ذخیره می‌کند. این محدودیت ممکن است تغییر کند.

// 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 یک شیء جاوا اسکریپت حاوی کلیدها و مقادیر رشته‌ای.

همچنین ببینید


putAll(values, expirationInSeconds)

مجموعه‌ای از جفت‌های کلید/مقدار را به حافظه پنهان (cache) اضافه می‌کند، به همراه زمان انقضا (برحسب ثانیه).

مشابه فراخوانی‌های مکرر برای "put"، اما کارآمدتر است زیرا فقط یک فراخوانی به سرور memcache برای تنظیم همه مقادیر انجام می‌دهد. حداکثر طول یک کلید ۲۵۰ کاراکتر است. حداکثر مقدار داده‌ای که می‌توان در هر کلید ذخیره کرد ۱۰۰ کیلوبایت است. زمان انقضای مشخص شده فقط یک پیشنهاد است؛ اگر داده‌های زیادی ذخیره شده باشند، ممکن است داده‌های ذخیره شده قبل از این زمان حذف شوند.

حداکثر تعداد آیتم‌های ذخیره‌شده در حافظه پنهان ۱۰۰۰ است. اگر بیش از ۱۰۰۰ آیتم نوشته شده باشد، حافظه پنهان ۹۰۰ آیتمی را که از تاریخ انقضا دورتر هستند، ذخیره می‌کند. این محدودیت ممکن است تغییر کند.

// 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 یک شیء جاوا اسکریپت حاوی کلیدها و مقادیر رشته‌ای.
expiration In Seconds Integer حداکثر زمانی که مقدار در حافظه پنهان باقی می‌ماند، بر حسب ثانیه. حداقل انقضای مجاز ۱ ثانیه و حداکثر انقضای مجاز ۲۱۶۰۰ ثانیه (۶ ساعت) است. انقضای پیش‌فرض ۶۰۰ ثانیه (۱۰ دقیقه) است.

همچنین ببینید


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[] آرایه‌ای از کلیدها که باید حذف شوند.