Skip to content

Latest commit

 

History

History
66 lines (43 loc) · 3.81 KB

cache.md

File metadata and controls

66 lines (43 loc) · 3.81 KB

##Кэширование

###Основы

Для хранения данных в кэше Knee предоставляет класс Cache.

Для манипуляции с кэшем используется memory cache daemon memcached, поэтому для работы c классом Cache memcached должен быть установлен в системе и подключен один из PHP драйверов memcache или memcached.

Приступая к работе с кэшем, нужно настроить некоторые параметры, которые находятся в файле конфигурации /app/configs/cache.php.

  • driver — PHP драйвер для работы с демоном memcached. Может принимать значения memcache или memcached
  • token — ключ-прификс, который используется для хранения данных в memcached. Он требуется для предотвращения случайного доступа к данным другими программами, работающими с memcached. По умолчанию имеет значение "knee__" и его можно не изменять;
  • servers — массив с данными для подключения к хранилищам memcached.
    • host — IP хоста для подключения. По умолчанию имеет значение "127.0.0.1";
    • port — Номер порта для подключения. По умолчанию имеет значение "11211";
    • weight — Вес сервера. Чем он больше, ем больше вероятности, что для хранения данных будет выбран он. По умолчанию имеет значение "100".

###Доступ

Класс Cache имеет ряд полезных методов для проведения манипуляций с кэшем.

####Запись данных в кэш

Cache::set('name', 'Jack');
Cache::set('name', 'Jack', ['tag1', 'tag2']);
Cache::set('city', 'Casablanca', ['tag1', 'tag2'], '1 day');

Третий параметр может задавать теги для значения в кэше. Используя теги можно обнулять группу кэшей используя метод clear.

Четвертый параметр задает время действия значения в кэше. Указание времени осуществляется строкой, которая может быть нескольких видов (N sec, N min, N hour, N day, N month, N year), где N это число.

####Получение данных из кэша

Cache::get('name');

В случае, если данных с таким ключом не существует, метод вернет null.

####Удаление данных

Cache::del('name');

####Очистка кэша

Cache::clear();
Cache::clear('tag1');

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

На самом деле memcached не удаляет данные, а делает их недоступными.

####Проверка на существование

Cache::exists('name');