Класс MemcachedEngine
Механизм хранения Memcached для кэша. Memcached имеет некоторые ограничения на управление временем истечения срока действия далеко в будущем. Дополнительную информацию см. в MemcachedEngine::write().
Механизм Memcached поддерживает двоичный протокол и сериализацию igbinary (если расширение memcached скомпилировано с --enable-igbinary). Сжатые ключи также можно увеличивать/уменьшать.
Константы
-
stringCHECK_KEY'key'
-
stringCHECK_VALUE'value'
Резюме свойств
- $_Memcached protected
MemcachedОбертка memcached.
- $_compiledGroupNames protected
array<string> - $_config protected
array<string, mixed>Конфигурация во время выполнения
- $_configInitialized protected
boolУказывает, была ли конфигурация уже настроена по умолчанию
- $_defaultConfig protected
array<string, mixed>Конфигурация по умолчанию, используемая, если не переопределена конфигурацией во время выполнения
- $_groupPrefix protected
stringСодержит скомпилированную строку со всеми префиксами групп, которые должны быть добавлены перед каждым ключом в этом кэше
- $_serializers protected
array<string, int>Список доступных механизмов сериализации
Резюме методов
-
_configDelete() protected
Удаляет один ключ конфигурации.
-
_configRead() protected
Читает ключ конфигурации.
-
_configWrite() protected
Записывает ключ конфигурации.
-
_key() protected
Генерирует ключ для использования кэша.
-
_setOptions() protected
Настройка экземпляра memcached
-
add() public
Добавляет ключ в кэш, если он еще не существует.
-
clear() public
Удаляет все ключи из кэша
-
clearGroup() public
Увеличивает значение группы, чтобы имитировать удаление всех ключей в группе. Старые значения будут оставаться в хранилище до истечения срока действия.
-
configShallow() public
Объединяет предоставленную конфигурацию с существующей конфигурацией. В отличие от
config(), которое выполняет рекурсивное объединение для вложенных ключей, этот метод выполняет простое объединение. -
decrement() public
Уменьшает значение целочисленного кэшированного ключа
-
delete() public
Удаляет ключ из кэша
-
deleteMultiple() public
Удаляет сразу несколько ключей из кэша
-
duration() protected
Преобразует различные выражения значения TTL в продолжительность в секундах
-
ensureValidKey() protected
Обеспечивает корректность данного ключа кэша.
-
ensureValidType() protected
Обеспечивает корректность типа аргумента и ключей кэша.
-
get() public
Считывает ключ из кэша
-
getConfig() public
Возвращает конфигурацию.
-
getConfigOrFail() public
Возвращает конфигурацию для конкретного ключа.
-
getMultiple() public
Считывает сразу несколько ключей из кэша
-
getOption() public
Считывает значение параметра из соединения memcached.
-
groups() public
Возвращает значения
group valueдля каждой из настроенных групп. Если начальное значение группы не найдено, то группа инициализируется соответствующим образом. -
has() public
Определяет, присутствует ли элемент в кэше.
-
increment() public
Увеличивает значение целочисленного кэшированного ключа
-
init() public
Инициализировать механизм кэширования
-
parseServerString() public
Парсит адрес сервера в хост/порт. Обрабатывает как IPv6, так и IPv4 адреса и Unix сокеты
-
set() public
Записывает данные для ключа в кэш. При использовании memcached в качестве механизма кэширования, помните, что расширение Memcached pecl не поддерживает время истечения кэша более 30 дней в будущем. Любое время, превышающее 30 дней, будет обрабатываться как реальное значение Unix time, а не как смещение от текущего времени.
-
setConfig() public
Устанавливает конфигурацию.
-
setMultiple() public
Записывает сразу несколько записей в кэш
-
warning() protected
Механизмы кэша могут вызывать предупреждения, если во время работы они сталкиваются с ошибками, если параметр warnOnWriteFailures установлен в true.
Подробное описание методов
_configDelete() protected
_configDelete(string $key): void
Удаляет единственный ключ конфигурации.
Параметры
-
string$key Ключ для удаления.
Возвращает
voidИсключение
Cake\Core\Exception\CakeExceptionпри попытке перезаписи существующей конфигурации
_configRead() protected
_configRead(string|null $key): mixed
Считывает ключ конфигурации.
Параметры
-
string|null$key Ключ для считывания.
Возвращает
mixed_configWrite() protected
_configWrite(array<string, mixed>|string $key, mixed $value, string|bool $merge = false): void
Записывает ключ конфигурации.
Параметры
-
array<string, mixed>|string$key Ключ для записи.
-
mixed$value Значение для записи.
-
string|bool$merge optional True для рекурсивного слияния, 'shallow' для простого слияния, false для перезаписи, по умолчанию false.
Возвращает
voidИсключение
Cake\Core\Exception\CakeExceptionпри попытке перезаписи существующей конфигурации
_key() protected
_key(string $key): string
Генерирует ключ для использования с кэшем.
Если запрашиваемый ключ допустим, применяются префикс группы и префикс движка. Пробелы в ключах заменяются.
Параметры
-
string$key передаваемый ключ
Возвращает
stringИсключение
Cake\Cache\InvalidArgumentExceptionЕсли значение ключа недопустимо.
_setOptions() protected
_setOptions(): void
Настройка экземпляра memcached
Возвращает
voidИсключение
InvalidArgumentExceptionКогда расширение Memcached не построено с нужным движком сериализации.
add() public
add(string $key, mixed $value): bool
Добавляет ключ в кэш, если он еще не существует.
По умолчанию используется неатомарная реализация. Подклассы должны отдавать предпочтение атомарным реализациям.
Параметры
-
string$key Идентификатор данных.
-
mixed$value Данные для кэширования.
Возвращает
boolclear() public
clear(): bool
Удаляет все ключи из кэша
Возвращает
boolclearGroup() public
clearGroup(string $group): bool
Увеличивает значение группы, чтобы имитировать удаление всех ключей в группе. Старые значения останутся в хранилище до их истечения срока действия.
Каждая реализация должна решить, действительно ли удалять ключи или просто увеличить значение генерации группы, чтобы получить тот же результат.
Параметры
-
string$group название группы, которая должна быть очищена
Возвращает
boolconfigShallow() public
configShallow(array<string, mixed>|string $key, mixed|null $value = null): $this
Сливает предоставленную конфигурацию с существующей конфигурацией. В отличие от config(), которая выполняет рекурсивное слияние для вложенных ключей, этот метод выполняет простое слияние.
Установка определенного значения:
$this->configShallow('key', $value); Установка вложенного значения:
$this->configShallow('some.nested.key', $value); Обновление нескольких параметров конфигурации одновременно:
$this->configShallow(['one' => 'value', 'another' => 'value']);
Параметры
-
array<string, mixed>|string$key Ключ для установки или массив полной конфигурации.
-
mixed|null$value optional Значение для установки.
Возвращает
$thisdecrement() public
decrement(string $key, int $offset = 1): int|false
Уменьшает значение целого числа кэшированного ключа
Параметры
-
string$key Идентификатор данных
-
int$offset optional На сколько уменьшить
Возвращает
int|falsedelete() public
delete(string $key): bool
Удаляет ключ из кэша
Параметры
-
string$key Идентификатор данных
Возвращает
booldeleteMultiple() public
deleteMultiple(iterable $keys): bool
Удаляет сразу несколько ключей из кэша
Это попытка наилучшего результата. Если удаление элемента вызовет ошибку, она будет проигнорирована, и все элементы будут удаляться.
Параметры
-
iterable$keys Массив идентификаторов данных
Возвращает
boolduration() protected
duration(DateInterval|int|null $ttl): int
Преобразует различные выражения значения TTL в длительность в секундах
Параметры
-
DateInterval|int|null$ttl Значение TTL этого элемента. Если отправляется null, используется значение по умолчанию драйвера.
Возвращает
intensureValidKey() protected
ensureValidKey(string $key): void
Проверка валидности заданного ключа кэша.
Параметры
-
string$key Ключ для проверки.
Возвращает
voidИсключение
Cake\Cache\InvalidArgumentExceptionПри невалидном ключе.
ensureValidType() protected
ensureValidType(iterable $iterable, string $check = self::CHECK_VALUE): void
Проверка валидности типа аргумента и ключей кэша.
Параметры
-
iterable$iterable Перебираемый объект для проверки.
-
string$check optional Проверять ключи или значения.
Возвращает
voidИсключение
Cake\Cache\InvalidArgumentExceptionget() public
get(string $key, mixed $default = null): mixed
Считывает ключ из кэша
Параметры
-
string$key Идентификатор данных
-
mixed$default optional Значение по умолчанию, возвращаемое, если ключ не существует.
Возвращает
mixedgetConfig() public
getConfig(string|null $key = null, mixed $default = null): mixed
Возвращает конфигурацию.
Использование
Чтение всей конфигурации:
$this->getConfig();
Чтение определенного значения:
$this->getConfig('key'); Чтение вложенного значения:
$this->getConfig('some.nested.key'); Чтение со значением по умолчанию:
$this->getConfig('some-key', 'default-value'); Параметры
-
string|null$key optional Ключ для получения или null для всей конфигурации.
-
mixed$default optional Возвращаемое значение, когда ключ не существует.
Возвращает
mixedgetConfigOrFail() public
getConfigOrFail(string $key): mixed
Возвращает конфигурацию для этого конкретного ключа.
Значение конфигурации для этого ключа должно существовать, оно никогда не может быть null.
Параметры
-
string$key Ключ для получения.
Возвращает
mixedИсключение
InvalidArgumentExceptiongetMultiple() public
getMultiple(iterable $keys, mixed $default = null): array
Прочитать сразу несколько ключей из кэша
Параметры
-
iterable$keys Массив идентификаторов данных
-
mixed$default необязательно Значение по умолчанию для ключей, которых нет.
Возвращает
arraygetOption() public
getOption(int $name): string|int|bool|null
Прочитать значение опции из подключения к memcached.
Параметры
-
int$name Имя опции для чтения.
Возвращает
string|int|bool|nullСм. также
groups() public
groups(): array<string>
Возвращает group value для каждой из настроенных групп. Если начальное значение группы не найдено, группа инициализируется соответствующим образом.
Возвращает
array<string>has() public
has(string $key): bool
Определяет, присутствует ли элемент в кэше.
ПРИМЕЧАНИЕ: рекомендуется использовать has() только для целей разогрева кэша, а не для операций get/set в ваших активных приложениях, так как этот метод подвержен гонке, при которой has() может вернуть true, а вскоре после этого другой скрипт может удалить его, делая состояние вашего приложения устаревшим.
Параметры
-
string$key Ключ элемента кэша.
Возвращает
boolИсключение
Cake\Cache\InvalidArgumentExceptionЕсли строка $key не является допустимым значением.
increment() public
increment(string $key, int $offset = 1): int|false
Увеличивает значение целочисленного кэшированного ключа
Параметры
-
string$key Идентификатор данных
-
int$offset необязательно На сколько увеличить
Возвращает
int|falseinit() public
init(array<string, mixed> $config = []): bool
Инициализировать движок кэша
Вызывается автоматически передним фронтендом кэша
Параметры
-
array<string, mixed>$config необязательно массив настроек для движка
Возвращает
boolИсключение
InvalidArgumentExceptionКогда вы пытаетесь использовать аутентификацию без поддержки SASL в скомпилированном Memcached
parseServerString() public
parseServerString(string $server): array
Парсит строку адреса сервера в хост/порт. Обрабатывает как IPv6, так и IPv4 адреса и сокеты Unix
Параметры
-
string$server Строка адреса сервера.
Возвращает
arrayset() public
set(string $key, mixed $value, null|intDateInterval $ttl = null): bool
Записать данные для ключа в кэш. При использовании memcached в качестве движка кэша, помните, что расширение Memcached pecl не поддерживает время истечения кэша больше 30 дней в будущем. Любой срок больше 30 дней будет обрабатываться как реальное значение Unix time, а не как смещение от текущего времени.
Параметры
-
string$key Идентификатор данных
-
mixed$value Данные для кэширования
-
null|intDateInterval$ttl необязательно Необязательно. Значение TTL этого элемента. Если значение не передано, а драйвер поддерживает TTL, библиотека может установить значение по умолчанию или разрешить драйверу позаботиться об этом.
Возвращает
boolСм. также
setConfig() public
setConfig(array<string, mixed>|string $key, mixed|null $value = null, bool $merge = true): $this
Устанавливает конфигурацию.
Использование
Установление определенного значения:
$this->setConfig('key', $value); Установление вложенного значения:
$this->setConfig('some.nested.key', $value); Обновление нескольких настроек конфигурации одновременно:
$this->setConfig(['one' => 'value', 'another' => 'value']);
Параметры
-
array<string, mixed>|string$key Ключ для установки или полный массив конфигураций.
-
mixed|null$value необязательно Значение для установки.
-
bool$merge необязательно Выполнить рекурсивное слияние или перезапись существующей конфигурации, по умолчанию true.
Возвращает
$thisИсключение
Cake\Core\Exception\CakeExceptionПри попытке установить недопустимый ключ.
setMultiple() public
setMultiple(iterable $values, null|intDateInterval $ttl = null): bool
Записать сразу несколько записей в кэш
Параметры
-
iterable$values Массив данных для хранения в кэше
-
null|intDateInterval$ttl необязательно Необязательно. Значение TTL этого элемента. Если значение не передано, а драйвер поддерживает TTL, библиотека может установить значение по умолчанию или разрешить драйверу позаботиться об этом.
Возвращает
boolwarning() protected
warning(string $message): void
Движки кэша могут вызывать предупреждения, если они сталкиваются с ошибками во время работы, если опция warnOnWriteFailures установлена в true.
Параметры
-
string$message Сообщение предупреждения.
Возвращает
voidПодробное описание свойства
$_Memcached protected
Обёртка для memcached.
Тип
Memcached$_compiledGroupNames protected
Тип
array<string>$_config protected
Конфигурация во время выполнения.
Тип
array<string, mixed>$_configInitialized protected
Указывает, была ли конфигурация уже настроена по умолчанию.
Тип
bool$_defaultConfig protected
Конфигурация по умолчанию, используемая, если не переопределена конфигурацией во время выполнения.
-
compressСжимать ли данные -
durationУказывает, как долго элементы в этой конфигурации кеша хранятся. -
groupsСписок групп или «тегов», связанных с каждым ключом, хранящимся в этой конфигурации. Удобно для удаления целой группы из кеша. -
usernameЛогин для доступа к серверу Memcache. -
passwordПароль для доступа к серверу Memcache. -
persistentИмя постоянного соединения. Все конфигурации, использующие одно и то же значение постоянства, будут использовать одно и то же подлежащее соединение. -
prefixДобавленный префикс ко всем записям. Полезно, когда вам нужно использовать пространство ключей совместно с другой конфигурацией кеша или другим приложением. -
serializeДвигатель сериализации, используемый для сериализации данных. Доступные движки: «php», «igbinary» и «json». Помимо «php», расширение memcached должно быть скомпилировано с соответствующей поддержкой сериализации. -
serversСтрока или массив серверов memcached. Если массив, MemcacheEngine будет использовать их как пул. -
optionsДополнительные параметры для клиента memcached. Должен быть массивом параметр => значение. Используйте константы \Memcached::OPT_*.
Тип
array<string, mixed>$_groupPrefix protected
Содержит скомпилированную строку со всеми префиксами групп, которые будут добавляться к каждому ключу в этом движке кеша.
Тип
string$_serializers protected
Список доступных движков сериализации.
Memcached должен быть скомпилирован с поддержкой JSON и igbinary, чтобы использовать эти движки.
Тип
array<string, int>
© 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/4.4/class-Cake.Cache.Engine.MemcachedEngine.html