Класс MemcachedEngine
Двигатель хранилища Memcached для кэша. Memcached имеет некоторые ограничения в управлении временем истечения кэша в далеком будущем. Более подробную информацию см. в MemcachedEngine::write().
Основное преимущество этого движка Memcached перед движком memcached заключается в поддержке двоичного протокола и сериализации igbinary (если расширение memcached скомпилировано с помощью --enable-igbinary). Сжатые ключи также могут быть инкрементированы/декрементированы.
- Cake\Cache\CacheEngine использует Cake\Core\InstanceConfigTrait
-
Cake\Cache\Engine\MemcachedEngine
Краткое описание свойств
-
$_Memcachedprotectedобёртка memcached.Memcached -
$_compiledGroupNamesprotectedstring[] -
$_defaultConfigprotectedЗначение конфигурации по умолчанию, если не переопределено конфигурацией во время выполненияarray -
$_serializersprotectedСписок доступных движков сериализацииarray
Унаследованные свойства
Краткое описание методов
- _parseServerString() protectedОбратный совместимый псевдоним parseServerString
- _setOptions() protectedНастройка экземпляра memcached
- add() publicДобавление ключа в кэш, если он ещё не существует.
- clear() publicУдаление всех ключей из кэша
- clearGroup() public
Увеличивает значение группы, чтобы имитировать удаление всех ключей в группе; старые значения останутся в хранилище до истечения срока их действия.
- decrement() publicУменьшает значение целочисленного кэшированного ключа
- delete() publicУдаление ключа из кэша
- deleteMany() publicУдаление сразу нескольких ключей из кэша
- getOption() publicЧтение значения параметра из соединения memcached.
- groups() public
Возвращает
group valueдля каждой из настроенных групп. Если начальное значение группы не найдено, то группа инициализируется соответствующим образом. - increment() publicУвеличивает значение целочисленного кэшированного ключа
- init() publicИнициализация движка кэша
- parseServerString() public
Разбирает адрес сервера на хост/порт. Обрабатывает как IPv6, так и IPv4 адреса, и сокеты Unix
- read() publicЧтение ключа из кэша
- readMany() publicЧтение сразу нескольких ключей из кэша
- write() public
Запись данных для ключа в кэш. При использовании memcached в качестве движка кэша помните, что расширение Memcached pecl не поддерживает временные интервалы истечения кэша, превышающие 30 дней в будущем. Любой срок, превышающий 30 дней, будет обрабатываться как неистекающий.
- writeMany() publicЗапись сразу нескольких записей в кэш
Подробное описание методов
_parseServerString()source protected
_parseServerString( string $server )
Обратный совместимый псевдоним parseServerString
Устарело
3.4.13 Будет удалено в 4.0.0Параметры
- строка
$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 - Массив идентификаторов данных
Возвращает
массивМассив значений boolean, true, если ключ был успешно удален, false, если его не было или не удалось удалить.
Переопределяет
Cake\Cache\CacheEngine::deleteMany() getOption()source public
getOption( string $name )
Чтение значения параметра из соединения memcached.
Параметры
- строка
$name - Имя параметра для чтения.
Возвращает
строка|целое число|null|булевоgroups()source public
groups( )
Возвращает group value для каждой из настроенных групп. Если начальное значение группы не найдено, то группа инициализируется соответствующим образом.
Возвращает
arrayПереопределяет
Cake\Cache\CacheEngine::groups() increment()source public
increment( string $key , integer $offset 1 )
Увеличивает значение целочисленного кэшированного ключа
Параметры
- string
$key - Идентификатор данных
- integer
$offsetнеобязательно 1 - На сколько увеличить
Возвращает
boolean|integerНовое увеличенное значение, иначе false
init()source public
init( array $config [] )
Инициализация кэша
Вызывается автоматически интерфейсом кэша
Параметры
- array
$configнеобязательно [] - массив настроек для движка
Возвращает
booleanTrue, если движок успешно инициализирован, false — в противном случае
Выбрасывает
InvalidArgumentExceptionЕсли вы пытаетесь использовать аутентификацию без поддержки Memcached с SASL
Переопределяет
Cake\Cache\CacheEngine::init() parseServerString()source public
parseServerString( string $server )
Разбирает адрес сервера на хост/порт. Поддерживает IPv6 и IPv4 адреса, а также Unix-сокеты
Параметры
- string
$server - Строка адреса сервера.
Возвращает
arrayМассив, содержащий хост и порт
read()source public
read( string $key )
Чтение ключа из кэша
Параметры
- string
$key - Идентификатор данных
Возвращает
mixedКэшированные данные или false, если данные не существуют, истекли срок действия или произошла ошибка при их получении.
readMany()source public
readMany( array $keys )
Одновременное чтение нескольких ключей из кэша
Параметры
- array
$keys - Массив идентификаторов данных
Возвращает
arrayМассив, содержащий для каждого из заданных ключей кэшированные данные или false, если данные не были получены.
Переопределяет
Cake\Cache\CacheEngine::readMany() write()source public
write( string $key , mixed $value )
Запись данных для ключа в кэш. При использовании memcached в качестве кэша помните, что расширение Memcached pecl не поддерживает временные интервалы кэширования более 30 дней в будущем. Любой период времени, превышающий 30 дней, будет обрабатываться как неистекающий.
Параметры
- string
$key - Идентификатор данных
- mixed
$value - Данные для кэширования
Возвращает
booleanTrue, если данные были успешно кэшированы, false — при ошибке
См. также
https://secure.php.net/manual/en/memcache.set.phpwriteMany()source public
writeMany( array $data )
Одновременная запись нескольких записей в кэш
Параметры
- array
$data - Массив данных, которые нужно сохранить в кэше
Возвращает
arrayмассив булевых значений для каждого ключа, true, если данные были успешно кэшированы, false — при ошибке
Переопределяет
Cake\Cache\CacheEngine::writeMany() Методы, унаследованные от Cake\Cache\CacheEngine
_key()source protected
_key( string $key )
Генерирует безопасный ключ, учитывая префикс ключа, заданный в конфигурации
Параметры
- string
$key - переданный ключ
Возвращает
mixedстрока $key или false
Выбрасывает
InvalidArgumentExceptionЕсли значение ключа пустое
gc()source public
gc( integer|null $expires null )
Сбор мусора
Постоянно удаляет все просроченные и удаленные данные
Параметры
- integer|null
$expiresнеобязательно null - [необязательно] Отметка времени истечения срока действия, делающая все данные до нее недействительными.
key()source public
key( string $key )
Генерирует безопасный ключ для использования с движками хранения кэша.
Параметры
- string
$key - переданный ключ
Возвращает
boolean|stringстрока ключа или false
Методы, используемые из Cake\Core\InstanceConfigTrait
_configDelete()source protected
_configDelete( string $key )
Удаляет отдельный ключ конфигурации.
Параметры
- string
$key - Ключ для удаления.
Выбрасывает
Cake\Core\Exception\Exceptionесли пытаетесь перезаписать существующую конфигурацию
_configRead()source protected
_configRead( string|null $key )
Читает ключ конфигурации.
Параметры
- string|null
$key - Ключ для чтения.
Возвращает
mixed_configWrite()source protected
_configWrite( string|array $key , mixed $value , boolean|string $merge false )
Записывает ключ конфигурации.
Параметры
- string|array
$key - Ключ для записи.
- mixed
$value - Значение для записи.
- boolean|string
$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']);
Устарело
3.4.0 используйте setConfig()/getConfig() вместо этого.Параметры
- string|array|null
$keyнеобязательно null - Ключ для получения/установки или весь массив конфигураций.
- mixed|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->configShallow('key', $value); Установить вложенное значение:
$this->configShallow('some.nested.key', $value); Обновление нескольких настроек конфигурации одновременно:
$this->configShallow(['one' => 'value', 'another' => 'value']);
Параметры
- string|array
$key - Ключ для установки или полный массив настроек.
- mixed|null
$valueнеобязательно null - Значение для установки.
Возвращает
$this
getConfig()source public
getConfig( string|null $key null , mixed $default null )
Возвращает конфигурацию.
Использование
Чтение всей конфигурации:
$this->getConfig();
Чтение конкретного значения:
$this->getConfig('key'); Чтение вложенного значения:
$this->getConfig('some.nested.key'); Чтение со значением по умолчанию:
$this->getConfig('some-key', 'default-value'); Параметры
- string|null
$keyнеобязательно null - Ключ для получения или null для всей конфигурации.
- mixed
$defaultнеобязательно null - Возвращаемое значение, когда ключ не существует.
Возвращает
mixedЗначение считываемой конфигурации.
setConfig()source public
setConfig( string|array $key , mixed|null $value null , boolean $merge true )
Устанавливает конфигурацию.
Использование
Установка конкретного значения:
$this->setConfig('key', $value); Установка вложенного значения:
$this->setConfig('some.nested.key', $value); Обновление нескольких настроек конфигурации одновременно:
$this->setConfig(['one' => 'value', 'another' => 'value']);
Параметры
- string|array
$key - Ключ для установки или полный массив настроек.
- mixed|null
$valueнеобязательно null - Значение для установки.
- boolean
$mergeнеобязательно true - Выполнять ли рекурсивное объединение или перезапись существующей конфигурации, по умолчанию true.
Возвращает
$this
Исключение
Cake\Core\Exception\ExceptionПри попытке установить недопустимый ключ.
Подробное описание свойств
$_defaultConfigsource
protected array
Конфигурация по умолчанию, используемая, если не переопределена конфигурацией во время выполнения
-
compressСжимать ли данные -
durationУказать, как долго элементы в этой конфигурации кеша остаются активными. -
groupsСписок групп или «меток», связанных с каждым ключом, хранящимся в этой конфигурации. Полезно для удаления всей группы из кеша. -
usernameЛогин для доступа к серверу Memcache -
passwordПароль для доступа к серверу Memcache -
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–2018 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.5/class-Cake.Cache.Engine.MemcachedEngine.html