Spec-Zone.ru › Yii 2.0

Класс yii\redis\Mutex

Все классы | Свойства | Методы
Наследование yii\redis\Mutex » yii\mutex\Mutex » yii\base\Component » yii\base\Object
Реализует yii\base\Configurable
Доступно с версии 2.0.6
Исходный код https://github.com/yiisoft/yii2-redis/blob/master/Mutex.php

Блокировка Redis Mutex реализует компонент блокировки, используя redis в качестве хранилища.

Для корректной работы Redis Mutex требуется версия redis 2.6.12 или выше.

Необходимо настроить его с помощью redis yii\redis\Connection, который также настроен как компонент приложения. По умолчанию он будет использовать компонент redis приложения.

Чтобы использовать redis Mutex в качестве компонента приложения, настройте приложение следующим образом:

[
    'components' => [
        'mutex' => [
            'class' => 'yii\redis\Mutex',
            'redis' => [
                'hostname' => 'localhost',
                'port' => 6379,
                'database' => 0,
            ]
        ],
    ],
]

Или, если вы настроили redis yii\redis\Connection как компонент приложения, достаточно следующего:

[
    'components' => [
        'mutex' => [
            'class' => 'yii\redis\Mutex',
            // 'redis' => 'redis' // id of the connection application component
        ],
    ],
]

См. также:

  • yii\mutex\Mutex
  • http://redis.io/topics/distlock

Общедоступные свойства

Свойство Тип Описание Определено в
$autoRelease boolean Определяет, должны ли все блокировки, полученные в этом процессе (т.е. локальные блокировки), быть автоматически освобождены перед завершением выполнения сценария. yii\mutex\Mutex
$behaviors yii\base\Behavior[] Список поведений, присоединённых к этому компоненту yii\base\Component
$expire integer Количество секунд, в течение которого блокировка будет автоматически освобождена. yii\redis\Mutex
$keyPrefix string Строка-префикс для каждого ключа кэша, делающая его уникальным. yii\redis\Mutex
$redis yii\redis\Connection|string|array Объект yii\redis\Connection Redis или идентификатор компонента приложения объекта yii\redis\Connection Redis. yii\redis\Mutex

Общедоступные методы

Метод Описание Определено в
__call() Вызывает именованный метод, который не является методом класса. yii\base\Object
__clone() Этот метод вызывается после создания объекта путём клонирования существующего. yii\base\Component
__construct() Конструктор. yii\base\Object
__get() Возвращает значение свойства объекта. yii\base\Object
__isset() Проверяет, установлено ли свойство, т.е. определено и не равно null. yii\base\Object
__set() Устанавливает значение свойства объекта. yii\base\Object
__unset() Устанавливает свойство объекта в null. yii\base\Object
acquire() Получает блокировку по имени. yii\mutex\Mutex
attachBehavior() Присоединяет поведение к компоненту. yii\base\Component
attachBehaviors() Присоединяет список поведений к компоненту. yii\base\Component
behaviors() Возвращает список поведений, которые должен иметь этот компонент. yii\base\Component
canGetProperty() Возвращает значение, указывающее, можно ли читать свойство. yii\base\Object
canSetProperty() Возвращает значение, указывающее, можно ли установить свойство. yii\base\Object
className() Возвращает полное имя этого класса. yii\base\Object
detachBehavior() Отсоединяет поведение от компонента. yii\base\Component
detachBehaviors() Отсоединяет все поведения от компонента. yii\base\Component
ensureBehaviors() Убеждается, что поведения, объявленные в behaviors(), присоединены к этому компоненту. yii\base\Component
getBehavior() Возвращает объект именованного поведения. yii\base\Component
getBehaviors() Возвращает все присоединённые к этому компоненту поведения. yii\base\Component
hasEventHandlers() Возвращает значение, указывающее, есть ли обработчики, присоединённые к указанному событию. yii\base\Component
hasMethod() Возвращает значение, указывающее, определён ли метод. yii\base\Object
hasProperty() Возвращает значение, указывающее, определено ли свойство. yii\base\Object
init() Инициализирует компонент redis Mutex. yii\redis\Mutex
off() Отсоединяет существующий обработчик событий от этого компонента. yii\base\Component
on() Присоединяет обработчик событий к событию. yii\base\Component
release() Освобождает полученную блокировку. Этот метод вернёт false, если блокировка не найдена. yii\mutex\Mutex
trigger() Вызывает событие. yii\base\Component

Защищённые методы

Метод Описание Определено в
acquireLock() Получает блокировку по имени. yii\redis\Mutex
calculateKey() Генерирует уникальный ключ, используемый для хранения мьютекса в Redis. yii\redis\Mutex
releaseLock() Освобождает полученную блокировку. Этот метод вернёт false в случае, если блокировка не найдена или команда Redis завершилась неудачей. yii\redis\Mutex

Подробности свойств

$expire общедоступное свойство

Количество секунд, в течение которого блокировка будет автоматически освобождена.

public integer $expire = 30

$keyPrefix общедоступное свойство

Строка-префикс для каждого ключа кэша, делающая его уникальным. Если не задан, используется префикс, сгенерированный из \yii\redis\Application::id. Вы можете установить это свойство в пустую строку, если не хотите использовать префикс ключа. Рекомендуется явно установить это свойство в какое-то статическое значение, если кэшируемые данные должны быть совмещены между несколькими приложениями.

public string $keyPrefix = null

$redis общедоступное свойство

Объект Redis yii\redis\Connection или идентификатор компонента приложения Redis yii\redis\Connection. Это также может быть массив, используемый для создания экземпляра redis yii\redis\Connection, если вы не хотите настроить соединение redis как компонент приложения. После создания объекта Mutex, если вы хотите изменить это свойство, вы должны назначить ему только объект Redis yii\redis\Connection.

public yii\redis\Connection|string|array $redis = 'redis'

Подробное описание методов

acquireLock() защищённый метод

Получает блокировку по имени.

защищённый boolean acquireLock ( $name, $timeout = 0 )
$name string

Имя блокировки для получения. Должно быть уникальным.

$timeout integer

Время ожидания освобождения блокировки. По умолчанию 0 , что означает, что метод сразу вернёт false, если блокировка уже получена.

return boolean

Результат получения блокировки.

calculateKey() защищённый метод

Генерирует уникальный ключ, используемый для хранения мьютекса в Redis.

защищённый string calculateKey ( $name )
$name string

Имя мьютекса.

return string

Безопасный ключ кэша, связанный с именем мьютекса.

init() публичный метод

Инициализирует компонент redis Mutex.

Этот метод инициализирует свойство $redis, чтобы убедиться, что оно ссылается на действительное соединение redis.

публичный void init ( )
throws yii\base\InvalidConfigException

если $redis некорректен.

releaseLock() защищённый метод

Освобождает полученную блокировку. Этот метод вернёт false в случае, если блокировка не найдена или команда Redis завершилась неудачно.

защищённый boolean releaseLock ( $name )
$name string

Имя блокировки для освобождения. Эта блокировка должна уже существовать.

return boolean

Результат освобождения блокировки: false в случае, если блокировка с указанным именем не найдена или команда Redis завершилась неудачно.

© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc-2.0/yii-redis-mutex.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API