Класс 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 в качестве движка кэша, помните, что расширение pecl Memcached не поддерживает срок действия кэша более 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 )
Очистить все ключи из кэша
Параметры
- boolean
$check - Если true, будет проверена дата истечения срока действия, в противном случае удалятся все ключи.
Возвращаемое значение
booleanTrue, если кэш был успешно очищен, иначе false
clearGroup()source public
clearGroup( string $group )
Увеличивает значение группы для имитации удаления всех ключей в группе. Старые значения останутся в хранилище до истечения срока действия.
Параметры
- string
$group - название группы для очистки
Возвращаемое значение
booleanуспех
Переопределяет
Cake\Cache\CacheEngine::clearGroup() decrement()source public
decrement( string $key , integer $offset 1 )
Уменьшает значение целочисленного кэшированного ключа
Параметры
- string
$key - Идентификатор данных
- integer
$offsetнеобязательно 1 - На сколько уменьшить
Возвращаемое значение
boolean|integerНовое уменьшенное значение, иначе false
delete()source public
delete( string $key )
Удалить ключ из кэша
Параметры
- string
$key - Идентификатор данных
Возвращаемое значение
booleanTrue, если значение было успешно удалено, false, если его не существовало или не удалось удалить.
deleteMany()source public
deleteMany( array $keys )
Удалить сразу несколько ключей из кэша
Параметры
- array
$keys - Массив идентификаторов данных
Возвращаемое значение
arrayМассив значений boolean, true, если ключ был успешно удален, false, если его не существовало или не удалось удалить.
Переопределяет
Cake\Cache\CacheEngine::deleteMany() getOption()source public
getOption( string $name )
Чтение значения параметра из соединения с memcached.
Параметры
- string
$name - Имя параметра для чтения.
Возвращаемое значение
string|integer|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Если вы попытаетесь использовать аутентификацию без поддержки SASL в компилированном Memcached
Переопределяет
Cake\Cache\CacheEngine::init() parseServerString()source public
parseServerString( string $server )
Разбирает адрес сервера на хост и порт. Обрабатывает адреса IPv6 и IPv4, а также сокеты Unix.
Параметры
- строка
$server - Строка адреса сервера.
Возвращает
массивМассив, содержащий хост и порт
read()source public
read( string $key )
Считывает значение ключа из кэша.
Параметры
- строка
$key - Идентификатор данных.
Возвращает
смешанный типДанные из кэша или false, если данных нет, они истекли или произошла ошибка при чтении.
readMany()source public
readMany( array $keys )
Одновременное чтение множества ключей из кэша.
Параметры
- массив
$keys - Массив идентификаторов данных.
Возвращает
массивМассив, содержащий данные из кэша для каждого ключа из $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/ru/memcache.set.phpwriteMany()source public
writeMany( array $data )
Одновременная запись множества записей в кэш.
Параметры
- массив
$data - Массив данных для хранения в кэше.
Возвращает
массивМассив булевых значений для каждого ключа, true если данные успешно кэшированы, false при ошибке.
Переопределяет
Cake\Cache\CacheEngine::writeMany() Методы, унаследованные от Cake\Cache\CacheEngine
_key()source protected
_key( string $key )
Генерирует безопасный ключ, учитывая заданный префикс ключа.
Параметры
- строка
$key - переданный ключ
Возвращает
смешанный типстрока $key или false
Вызывает
InvalidArgumentExceptionЕсли значение ключа пустое
gc()source public
gc( integer|null $expires null )
Сбор мусора
Постоянно удаляет все устаревшие и удаленные данные.
Параметры
- целое число|null
$expiresнеобязательный null - [необязательно] Метка времени истечения срока действия, делающая все данные старше её недействительными.
key()source public
key( string $key )
Генерирует безопасный ключ для использования с движками хранения кэша.
Параметры
- строка
$key - переданный ключ
Возвращает
boolean|строкастрока ключа или 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 - Ключ для записи.
- mixed
$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']);
Устарело
3.4.0 используйте setConfig()/getConfig() вместо этого.Параметры
- строка|массив|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']);
Параметры
- строка|массив
$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'); Параметры
- строка|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Имя постоянного подключения. Все конфигурации с одинаковым значением 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–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.4/class-Cake.Cache.Engine.MemcachedEngine.html