Класс 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()source protected deprecated
_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 - Данные для кэширования.
Возвращает
booleanTrue, если данные успешно кэшированы, false в случае ошибки.
Переопределяет
Cake\Cache\CacheEngine::add() clear()source public
clear( boolean $check )
Удаление всех ключей из кэша
Параметры
- boolean
$check - Если true, проверит срок истечения, иначе удалит все.
Возвращает
booleanTrue, если кэш успешно очищен, false в противном случае
clearGroup()source public
clearGroup( string $group )
Увеличивает значение группы, чтобы имитировать удаление всех ключей в группе. Старые значения останутся в хранилище до их истечения.
Параметры
- строка
$group - Имя группы для очистки
Возвращает
booleanуспех
Переопределяет
Cake\Cache\CacheEngine::clearGroup() decrement()source public
decrement( string $key , integer $offset = 1 )
Уменьшает значение целочисленного кэшированного ключа
Параметры
- строка
$key - Идентификатор данных
- целое число
$offsetoptional 1 - На сколько уменьшить
Возвращает
boolean|целое числоНовое уменьшенное значение, false в противном случае
delete()source public
delete( string $key )
Удаление ключа из кэша
Параметры
- строка
$key - Идентификатор данных
Возвращает
booleanTrue, если значение успешно удалено, false, если его не существовало или не удалось удалить.
deleteMany()source public
deleteMany( array $keys )
Удаление нескольких ключей из кэша одновременно
Параметры
- массив
$keys - Массив идентификаторов данных
Возвращает
массивмассив булевых значений, true если ключ успешно удален, false если ключ не существовал или не удалось удалить.
Переопределяет
Cake\Cache\CacheEngine::deleteMany() getOption()source public
getOption( string $name )
Чтение значения параметра из соединения memcached.
Параметры
- строка
$name - Имя параметра для чтения.
Возвращает
строка|целое число|null|booleangroups()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Массив, содержащий для каждого из указанных $keys кэшированные данные или 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
warning()source protected
warning( string $message )
Движки кэша могут вызывать предупреждения, если они сталкиваются с ошибками во время работы, если параметр warnOnWriteFailures установлен в true.
Параметры
- string
$message - Сообщение предупреждения.
Методы, используемые из 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 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() вместо этого.Параметры
- 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
Конфигурация по умолчанию, используемая, если не переопределена в runtime
-
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–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.7/class-Cake.Cache.Engine.MemcachedEngine.html