Класс MemcachedEngine
Механизм хранения Memcached для кэша. Memcached имеет некоторые ограничения на контроль времени истечения действия, находящегося далеко в будущем. Дополнительная информация доступна в MemcachedEngine::write().
Основным преимуществом данного механизма Memcached перед обычным механизмом memcached является поддержка двоичного протокола и сериализации igbinary (если расширение memcached скомпилировано с --enable-igbinary). Сжатые ключи также могут быть инкрементированы/декрементированы
- Cake\Cache\CacheEngine использует Cake\Core\InstanceConfigTrait
-
Cake\Cache\Engine\MemcachedEngine
Краткое описание свойств
-
$_MemcachedprotectedОбёртка над memcached.Memcached -
$_defaultConfigprotectedКонфигурация по умолчанию, используемая, если не переопределена конфигурацией во время выполненияarray -
$_serializersprotectedСписок доступных механизмов сериализацииarray
Унаследованные свойства
Краткое описание методов
- _parseServerString() protected
Разбирает адрес сервера на хост/порт. Обрабатывает IPv6 и IPv4 адреса, а также Unix сокеты
- _setOptions() protectedНастройка экземпляра memcached
- add() publicДобавление ключа в кэш, если он ещё не существует.
- clear() publicУдаление всех ключей из кэша
- clearGroup() public
Инкрементирует значение группы, чтобы имитировать удаление всех ключей в группе. Старые значения останутся в хранилище до их истечения срока действия.
- decrement() publicДекрементирует значение целочисленного кэшированного ключа
- delete() publicУдаление ключа из кэша
- deleteMany() publicУдаление сразу многих ключей из кэша
- groups() public
Возвращает значения
group valueдля каждой из настроенных групп. Если начальное значение группы не найдено, то оно инициализируется соответствующим образом. - increment() publicИнкрементирует значение целочисленного кэшированного ключа
- init() publicИнициализация механизма кэширования
- read() publicЧтение ключа из кэша
- readMany() publicОдновременное чтение многих ключей из кэша
- write() public
Запись данных для ключа в кэш. При использовании Memcached в качестве механизма кэширования, помните, что расширение Memcached pecl не поддерживает время истечения кэша больше, чем 30 дней в будущем. Любой срок больше 30 дней будет обрабатываться как никогда не истекающий.
- writeMany() publicЗапись сразу нескольких записей в кэш
Подробное описание методов
_parseServerString()source protected
_parseServerString( string $server )
Разбирает адрес сервера на хост/порт. Обрабатывает IPv6 и IPv4 адреса, а также Unix сокеты
Параметры
- строка
$server - Строка адреса сервера.
Возвращает
массивМассив, содержащий хост и порт
_setOptions()source protected
_setOptions( )
Настройка экземпляра memcached
Исключения
InvalidArgumentExceptionЕсли расширение Memcached не скомпилировано с нужным механизмом сериализации.
add()source public
add( string $key , mixed $value )
Добавление ключа в кэш, если он ещё не существует.
Параметры
- строка
$key - Идентификатор данных.
- смешанное
$value - Данные для кэширования.
Возвращает
булевоTrue, если данные успешно кэшированы, false в случае ошибки.
Переопределяет
Cake\Cache\CacheEngine::add() clear()source public
clear( boolean $check )
Удаление всех ключей из кэша
Параметры
- булево
$check - Если true, будет проверка истечения срока действия, иначе удаляются все.
Возвращает
булевоTrue, если кэш успешно очищен, false в противном случае
clearGroup()source public
clearGroup( string $group )
Инкрементирует значение группы, чтобы имитировать удаление всех ключей в группе. Старые значения останутся в хранилище до их истечения срока действия.
Параметры
- строка
$group - имя группы для очистки
Возвращает
булевоуспех
Переопределяет
Cake\Cache\CacheEngine::clearGroup() decrement()source public
decrement( string $key , integer $offset 1 )
Декрементирует значение целочисленного кэшированного ключа
Параметры
- строка
$key - Идентификатор данных
- целое число
$offsetопционально 1 - На сколько уменьшить
Возвращает
булево|целое числоНовое декрементированное значение, false в противном случае
delete()source public
delete( string $key )
Удаление ключа из кэша
Параметры
- строка
$key - Идентификатор данных
Возвращает
булевоTrue, если значение успешно удалено, false, если его не существовало или не удалось удалить.
deleteMany()source public
deleteMany( array $keys )
Удаление сразу многих ключей из кэша
Параметры
- массив
$keys - Массив идентификаторов данных
Возвращает
массивмассив булевых значений, true, если ключ успешно удален, false, если его не существовало или не удалось удалить.
Переопределяет
Cake\Cache\CacheEngine::deleteMany() groups()source public
groups( )
Возвращает значения group value для каждой из настроенных групп. Если начальное значение группы не найдено, то оно инициализируется соответствующим образом.
Возвращает
массивПереопределяет
Cake\Cache\CacheEngine::groups() increment()source public
increment( string $key , integer $offset 1 )
Инкрементирует значение целочисленного кэшированного ключа
Параметры
- строка
$key - Идентификатор данных
- целое число
$offsetопционально 1 - На сколько увеличить
Возвращает
булево|целое числоНовое инкрементированное значение, false в противном случае
init()source public
init( array $config [] )
Инициализация кеш-движка
Вызывается автоматически передним планом кеша
Параметры
- массив
$configнеобязательно [] - массив настроек для движка
Возвращает
booleanTrue, если движок успешно инициализирован, false в противном случае
Исключения
InvalidArgumentExceptionКогда вы пытаетесь использовать аутентификацию без Memcached, скомпилированного с поддержкой SASL
Переопределяет
Cake\Cache\CacheEngine::init() read()source public
read( string $key )
Чтение ключа из кеша
Параметры
- строка
$key - Идентификатор данных
Возвращает
mixedКешированные данные или false, если данные не существуют, истекли срок действия или произошла ошибка при их извлечении.
readMany()source public
readMany( array $keys )
Одновременное чтение нескольких ключей из кеша
Параметры
- массив
$keys - Массив идентификаторов данных
Возвращает
arrayМассив, содержащий, для каждого из заданных $keys, кешированные данные или false, если кешированные данные не могут быть извлечены.
Переопределяет
Cake\Cache\CacheEngine::readMany() write()source public
write( string $key , mixed $value )
Запись данных для ключа в кеш. При использовании memcached в качестве движка кеша, помните, что расширение Memcached pecl не поддерживает время истечения кеша больше, чем 30 дней в будущем. Любой срок больше 30 дней будет рассматриваться как никогда не истекающий.
Параметры
- строка
$key - Идентификатор данных
- смешанный
$value - Данные, которые необходимо кешировать
Возвращает
booleanTrue, если данные были успешно кешированы, false при ошибке
См.
http://php.net/manual/en/memcache.set.phpwriteMany()source public
writeMany( array $data )
Одновременная запись нескольких записей в кеш
Параметры
- массив
$data - Массив данных, которые должны быть сохранены в кеше
Возвращает
arrayмассив булевых значений для каждого предоставленного ключа, true, если данные были успешно кешированы, false при ошибке
Переопределяет
Cake\Cache\CacheEngine::writeMany() Наследуемые методы из Cake\Cache\CacheEngine
_key()source protected
_key( string $key )
Генерирует безопасный ключ, учитывая заданный префикс ключа
Параметры
- строка
$key - переданный ключ
Возвращает
mixedстрока $key или false
Исключения
InvalidArgumentExceptionЕсли значение ключа пустое
gc()source public
gc( integer|null $expires null )
Сбор мусора
Постоянно удаляет все истекшие и удаленные данные
Параметры
- целое число|null
$expiresнеобязательно null - [необязательно] Дата отметка истечения срока действия, делает недействительными все данные до нее.
key()source public
key( string $key )
Генерирует безопасный ключ для использования с движками хранения кеша.
Параметры
- строка
$key - переданный ключ
Возвращает
boolean|stringстрока ключа или false
Методы, используемые из Cake\Core\InstanceConfigTrait
_configDelete()source protected
_configDelete( string $key )
Удаление одного ключа конфигурации
Параметры
- строка
$key - Ключ для удаления.
Исключения
Cake\Core\Exception\Exceptionесли пытаетесь перезаписать существующую конфигурацию
_configRead()source protected
_configRead( string|null $key )
Чтение переменной конфигурации
Параметры
- строка|null
$key - Ключ для чтения.
Возвращает
mixed_configWrite()source protected
_configWrite( string|array $key , mixed $value , boolean|string $merge false )
Запись переменной конфигурации
Параметры
- строка|массив
$key - Ключ для записи.
- смешанный
$value - Значение для записи.
- boolean|строка
$mergeнеобязательно false True для рекурсивного слияния, 'shallow' для простого слияния, false для перезаписи, по умолчанию false.
Исключения
Cake\Core\Exception\Exceptionесли пытаетесь перезаписать существующую конфигурацию
config()source public
config( string|array|null $key null , mixed|null $value null , boolean $merge true )
Использование
Чтение всей конфигурации:
$this->config();
Чтение определенного значения:
$this->config('key'); Чтение вложенного значения:
$this->config('some.nested.key'); Установка определенного значения:
$this->config('key', $value); Установка вложенного значения:
$this->config('some.nested.key', $value); Обновление нескольких настроек конфигурации одновременно:
$this->config(['one' => 'value', 'another' => 'value']);
Параметры
- строка|массив|null
$keyнеобязательно null - Ключ для получения/установки или весь массив конфигураций.
- смешанный|null
$valueнеобязательно null - Значение для установки.
- boolean
$mergeнеобязательно true - Рекурсивное слияние или перезапись существующей конфигурации, по умолчанию true.
Возвращает
mixedЗначение конфигурации, которое читается или сам объект при операциях записи.
Исключения
Cake\Core\Exception\ExceptionПри попытке установить недопустимый ключ.
configShallow()source public
configShallow( string|array $key , mixed|null $value null )
Объединение предоставленной конфигурации с существующей конфигурацией. В отличие от config() которая выполняет рекурсивное слияние для вложенных ключей, этот метод выполняет простое слияние.
Установка определенного значения:
$this->config('key', $value); Установка вложенного значения:
$this->config('some.nested.key', $value); Обновление нескольких настроек конфигурации одновременно:
$this->config(['one' => 'value', 'another' => 'value']);
Параметры
- строка|массив
$key - Ключ для установки или целый массив конфигураций.
- смешанный|null
$valueнеобязательно null - Значение для установки.
Возвращает
$this Объект самого себя.
Подробное описание свойств
END_OF_DOCUMENT_MARKER$_defaultConfigsource
protected array
Значения по умолчанию для конфигурации, если не переопределены в конфигурации выполнения
-
compressНужно ли сжимать данные -
durationУкажите срок хранения элементов в этой конфигурации кэша. -
groupsСписок групп или «тегов», связанных с каждым ключом, хранящимся в этой конфигурации. Полезно для удаления целой группы из кэша. -
usernameЛогин для доступа к серверу Memcache -
passwordПароль для доступа к серверу Memcache -
persistentИмя постоянного подключения. Все конфигурации с одинаковым значением постоянного подключения будут использовать одно и то же базовое подключение. -
prefixДобавляется перед всеми записями. Полезно, когда нужно использовать пространство имен с другой конфигурацией кэша или другим приложением. -
probabilityВероятность запуска очистки кэша. Установка в 0 отключит автоматическое вызов cache::gc. -
serializeСервисный движок сериализации данных. Доступны движки php, igbinary и json. Помимо php, необходимо, чтобы расширение memcached было скомпилировано с поддержкой соответствующей сериализации. -
serversСтрока или массив серверов memcached. Если массив, MemcacheEngine будет использовать их как пул. -
optionsДополнительные параметры для клиента memcached. Должен быть массивом параметр => значение. Используйте константы \Memcached::OPT_*.
[
'compress' => false,
'duration' => 3600,
'groups' => [],
'host' => null,
'username' => null,
'password' => null,
'persistent' => false,
'port' => null,
'prefix' => 'cake_',
'probability' => 100,
'serialize' => 'php',
'servers' => ['127.0.0.1'],
'options' => [],
] $_serializerssource
protected array
Список доступных движков сериализации
Memcached должен быть скомпилирован с поддержкой json и igbinary, чтобы использовать эти движки
[]
© 2005–2016 The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
http://api.cakephp.org/3.2/class-Cake.Cache.Engine.MemcachedEngine.html