Класс MemcachedEngine
Движок кэша Memcached для хранения данных. Memcached имеет некоторые ограничения на управление временем истечения кэша в далёком будущем. Для получения дополнительной информации см. MemcachedEngine::write().
Движок Memcached поддерживает двоичный протокол и сериализацию igbinary (если расширение memcached скомпилировано с параметром --enable-igbinary). Сжатые ключи также можно увеличивать/уменьшать.
- Cake\Cache\CacheEngine использует Cake\Core\InstanceConfigTrait
-
Cake\Cache\Engine\MemcachedEngine
Краткое описание свойств
-
$_MemcachedprotectedОбёртка над memcached.Memcached -
$_compiledGroupNamesprotectedstring[] -
$_defaultConfigprotectedЗначение конфигурации по умолчанию, если не переопределено в конфигурацииarray -
$_serializersprotectedСписок доступных движков сериализацииarray
Наследуемые свойства
Краткое описание методов
- Обратный совместимый псевдоним для 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()исходный код protected устаревший
_parseServerString( string $server )
Обратный совместимый псевдоним для parseServerString
Устарело
3.4.13 Будет удалено в 4.0.0Параметры
- строка
$server - Строка адреса сервера.
Возвращает
массивМассив, содержащий хост и порт
_setOptions()исходный код protected
_setOptions( )
Установка экземпляра memcached
Выбрасывает
InvalidArgumentExceptionЕсли расширение Memcached не скомпилировано с нужным движком сериализации.
add()исходный код public
add( string $key , mixed $value )
Добавление ключа в кэш, если он ещё не существует.
Параметры
- строка
$key - Идентификатор данных.
- смешанный
$value - Данные для кэширования.
Возвращает
булевоTrue, если данные успешно кэшированы, false в противном случае.
Переопределяет
Cake\Cache\CacheEngine::add() clear()исходный код public
clear( boolean $check )
Удаление всех ключей из кэша
Параметры
- булево
$check - Если true, будет проверка истечения срока действия, иначе все ключи будут удалены.
Возвращает
булевоTrue, если кэш успешно очищен, false в противном случае
clearGroup()исходный код public
clearGroup( string $group )
Увеличивает значение группы для имитации удаления всех ключей в группе. Старые значения останутся в хранилище до их истечения.
Параметры
- строка
$group - имя группы, которая должна быть очищена
Возвращает
булевоУспех
Переопределяет
Cake\Cache\CacheEngine::clearGroup() decrement()исходный код public
decrement( string $key , integer $offset = 1 )
Уменьшение значения целочисленного кэшированного ключа
Параметры
- строка
$key - Идентификатор данных
- целое
$offsetнеобязательно 1 - На сколько уменьшить
Возвращает
булево|целоеНовое уменьшенное значение, false в противном случае
delete()исходный код public
delete( string $key )
Удаление ключа из кэша
Параметры
- строка
$key - Идентификатор данных
Возвращает
булевоTrue, если значение было успешно удалено, false, если оно не существовало или не удалось удалить.
deleteMany()исходный код public
deleteMany( array $keys )
Удаление нескольких ключей из кэша сразу
Параметры
- массив
$keys - Массив идентификаторов данных
Возвращает
массивмассив булевых значений, true, если ключ был успешно удален, false, если он не существовал или не удалось удалить.
Переопределяет
Cake\Cache\CacheEngine::deleteMany() getOption()исходный код 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 )
Увеличивает значение целочисленного кэшированного ключа
Параметры
- строка
$key - Идентификатор данных
- целое число
$offsetнеобязательно 1 - На сколько увеличить
Возвращает
boolean|integerНовое увеличенное значение, в противном случае false
init()source public
init( array $config = [] )
Инициализирует движок кэша
Вызывается автоматически передним интерфейсом кэша
Параметры
- массив
$configнеобязательно [] - массив настроек для движка
Возвращает
booleanTrue, если движок был успешно инициализирован, false в противном случае
Выбрасывает
InvalidArgumentExceptionЕсли вы пытаетесь использовать аутентификацию без поддержки SASL в компилированном Memcached
Переопределяет
Cake\Cache\CacheEngine::init() parseServerString()source public
parseServerString( string $server )
Парсит адрес сервера в хост/порт. Обрабатывает как IPv6, так и IPv4 адреса и Unix сокеты
Параметры
- строка
$server - Строка адреса сервера.
Возвращает
arrayМассив, содержащий хост, порт
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 при ошибке
См.
https://secure.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
warning()source protected
warning( string $message )
Движки кэша могут вызывать предупреждения, если при работе обнаруживают ошибки, если опция warnOnWriteFailures установлена в true.
Параметры
- строка
$message - Сообщение об ошибке.
Методы, используемые из 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 deprecated
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() вместо этого.Параметры
- строка|массив|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->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Данные конфигурации по указанному ключу или null, если ключ не найден.
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Имя постоянного подключения. Все конфигурации, использующие то же значение persistent, будут совместно использовать одно и то же базовое подключение. -
prefixПрефикс для всех записей. Полезно, когда нужно использовать одну и ту же область ключей с другой конфигурацией кэша или другим приложением. -
probabilityВероятность запуска автоматической очистки кэша. Установка в 0 отключит автоматический вызов cache::gc. -
serializeИспользуемый механизм сериализации данных. Доступные механизмы — php, igbinary и json. Помимо php, расширение memcached должно быть скомпилировано с поддержкой соответствующей сериализации. -
serversСтрока или массив серверов memcached. Если это массив, MemcacheEngine будет использовать их как пул. -
optionsДополнительные параметры для клиента memcached. Должен быть массивом option => value. Используйте константы \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–present 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.8/class-Cake.Cache.Engine.MemcachedEngine.html