Класс 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( )
Возвращает значения для каждой из настроенных групп. Если начальное значение группы не найдено, то оно инициализируется соответствующим образом.
Возвращает
массивПереопределяет
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Массив, содержащий для каждого из заданных $ключей кэшированные данные или 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/ru/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строка $ключ или 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Имя постоянного соединения. Все конфигурации с одинаковым значением `persistent` будут использовать одно и то же подключение. -
prefixДобавляется к всем записям. Полезно, когда необходимо использовать один и тот же набор ключей с другой конфигурацией кеша или другим приложением. -
probabilityВероятность запуска очистки кеша (gc). Установка в 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–2017 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.
https://api.cakephp.org/3.3/class-Cake.Cache.Engine.MemcachedEngine.html