Кэш

Этот класс представляет собой многопротокольный кэш-движок F3. Он поддерживает memcache, WinCache, APC, XCache, Redis и кэширование на основе файловых систем.

Кэширование-это мощный способ повысить производительность вашего приложения. Он легко интегрируется со всеми основными и плагинными функциями например, установка ключей улья, HTTP-ответов, картографов БД и запросов и даже минификация JS/CSS.

Существует хорошее руководство пользователя Cache Engine, которое описывает, как работает Cache engine, и дает вам советы по улучшению вашего приложения и запросов к базе данных, поскольку они также могут быть кэшированы с помощью F3. Тебе действительно надо было прочитать его.

Пространство имен: \ Расположение файла: lib/base.php

Экземпляр

Возвращаемый экземпляр класса

$cache = \Cache::instance();

Механизм кэширования по умолчанию отключен. Чтобы активировать его с помощью автоматически обнаруженного бэкенда кэша, просто установите значение VAR системы кэша TRUE. Дополнительную конфигурацию смотрите в приведенной ниже функции load ().

Класс кэша использует заводскую оболочку Prefab, поэтому вы можете захватить один и тот же экземпляр этого класса в любой точке вашего кода.

набор

Храните пару ключ / значение в кэше

mixed|FALSE set( string $key, mixed $val [, int $ttl = 0 ] )

Если $ttlравно 0, то запись сохраняется в течение бесконечного времени. В противном случае указанное время в секундах используется как TTL.НБ: Версии F3 старше 3.6.5 повторно используют старые сроки годности. Начиная с 3.6.5, повторно используются только старые значения TTL. См. [выпуск №237] (https://github.com/bcosca/fatfree-core/issues/237) подробнее.

существует

Проверьте, существует ли запись кэша: верните метку времени и TTL записи кэша или FALSE, если она не найдена

array|FALSE exists( string $key [, mixed &$val = NULL ] )

Возвращает массив, содержащий элементы [0] creation timestamp и [1] time-to-live (TTL, в секундах) записи кэша; или FALSEесли она не была найдена.

$cache->set('foo','bar',5);

var_dump($cache->exists('foo'));
/* returns
array(2) {
  [0]=>  float(1369257446.4874)
  [1]=>  int(5)
}
*/

Вы также можете использовать этот $valаргумент для извлечения содержимого записи кэша. Это может сохранить дополнительный getвызов к бэкэнду кэша.

if ($cache->exists('foo',$value)) {
    echo $value; // bar
}

получить

Извлечение значения записи кэша

mixed|FALSE get( string $key )

Очистить

Удаление записи кэша

bool clear( string $key )

Сброс

Очистить содержимое бэкэнда кэша

bool reset( [ string $suffix = NULL ] )

Вы можете использовать $suffixдля очистки записей кэша только тот суффикс, который соответствует этой строке.

Вы также можете использовать $f3->clear('CACHE')его в качестве ярлыка для этого.Ограничения:

  • при использовании XCache все записи очищаются, независимо от их значения $suffix.

  • при использовании Memcached через расширение memcache, статистика cachedump должна быть включена (без -Xфлага), иначе команда не будет работать. Расширение memcached у него нет этого ограничения.

загружать

Загрузка / автоматическое определение бэкенда кэша. Возврат кэша DSN

string load( string|bool $dsn )

Возможные конфигурации для $dsnare:

  • apc

  • apcu

  • wincache

  • xcache

  • memcache=localhost:11211

  • memcached=localhost:11211

  • redis=localhost

  • folder=tmp/cache/

Вы можете установить $dsnзначение TRUEдля запуска функции автоматического обнаружения, используя файловую систему в качестве запасного варианта, когда механизм общей памяти не был обнаружен или недоступен. Установка $dsnна FALSEотключение кэширования.

Бэкенды memcacheand memcachedподдерживают несколько серверов. Серверы должны быть разделены на,, ;или |.

Возвращает DSN кэша используемого кэша (заданный или автоматически обнаруженный).

Last updated