Spec-Zone.ru › Yii 1.1

CRedisCache

Пакет system.caching
Наследование class CRedisCache » CCache » CApplicationComponent » CComponent
Реализует ArrayAccess, ICache, IApplicationComponent
С версии 1.1.14
Исходный код framework/caching/CRedisCache.php
CRedisCache реализует компонент кэша приложения, основанный на redis.

CRedisCache необходимо настроить с указанием имени хоста, порта и базы данных сервера для подключения. По умолчанию CRedisCache предполагает, что сервер redis работает на localhost по порту 6379 и использует базу данных номер 0.

CRedisCache также поддерживает команду AUTH redis. Если для сервера требуется авторизация, вы можете установить свойство password для аутентификации с сервером после подключения.

См. руководство по CCache для общих операций с кэшем, поддерживаемых CRedisCache.

Чтобы использовать CRedisCache в качестве компонента приложения кэша, настройте приложение следующим образом,
array(
    'components'=>array(
        'cache'=>array(
            'class'=>'CRedisCache',
            'hostname'=>'localhost',
            'port'=>6379,
            'database'=>0,
            'options'=>STREAM_CLIENT_CONNECT,
        ),
    ),
)


Минимальная требуемая версия redis — 2.0.0.

Свойства

Свойство Тип Описание Определено в
behaviors array поведения, которые должны быть присоединены к данному компоненту. CApplicationComponent
database int база данных redis для использования. CRedisCache
hashKey boolean использовать ли md5-хеширование ключа кэша для нормализации. CCache
hostname string имя хоста для подключения к серверу redis. CRedisCache
isInitialized boolean Проверяет, был ли инициализирован компонент приложения. CApplicationComponent
keyPrefix string строка, добавляемая в префикс к каждому ключу кэша, для обеспечения уникальности. CCache
options int параметры для передачи параметру flags функции stream_socket_client при подключении к серверу redis. CRedisCache
password string пароль для аутентификации с сервером redis. CRedisCache
port int порт для подключения к серверу redis. CRedisCache
serializer array|boolean функции для сериализации и десериализации данных кэша. CCache
timeout float таймаут для подключения к redis. CRedisCache

Публичные методы

Метод Описание Определено в
__call() Вызывает именованный метод, который не является методом класса. CComponent
__get() Возвращает значение свойства, список обработчиков событий или поведение на основе его имени. CComponent
__isset() Проверяет, является ли значение свойства null. CComponent
__set() Устанавливает значение свойства компонента. CComponent
__unset() Устанавливает свойство компонента в null. CComponent
add() Сохраняет значение, идентифицируемое ключом, в кэше, если в кэше нет этого ключа. CCache
asa() Возвращает объект поведения с указанным именем. CComponent
attachBehavior() Прикрепляет поведение к этому компоненту. CComponent
attachBehaviors() Прикрепляет список поведений к компоненту. CComponent
attachEventHandler() Прикрепляет обработчик событий к событию. CComponent
canGetProperty() Определяет, можно ли прочитать свойство. CComponent
canSetProperty() Определяет, можно ли установить свойство. CComponent
delete() Удаляет значение с указанным ключом из кэша. CCache
detachBehavior() Отсоединяет поведение от компонента. CComponent
detachBehaviors() Отсоединяет все поведения от компонента. CComponent
detachEventHandler() Отсоединяет существующий обработчик событий. CComponent
disableBehavior() Отключает прикрепленное поведение. CComponent
disableBehaviors() Отключает все прикреплённые к этому компоненту поведения. CComponent
enableBehavior() Включает прикрепленное поведение. CComponent
enableBehaviors() Включает все прикреплённые к этому компоненту поведения. CComponent
evaluateExpression() Вычисляет PHP-выражение или обратный вызов в контексте этого компонента. CComponent
executeCommand() Выполняет команду redis. CRedisCache
flush() Удаляет все значения из кэша. CCache
get() Извлекает значение из кэша по указанному ключу. CCache
getEventHandlers() Возвращает список прикреплённых обработчиков событий для события. CComponent
getIsInitialized() Проверяет, был ли инициализирован этот компонент приложения. CApplicationComponent
hasEvent() Определяет, определено ли событие. CComponent
hasEventHandler() Проверяет, есть ли прикреплённые обработчики для указанного события. CComponent
hasProperty() Определяет, определено ли свойство. CComponent
init() Инициализирует компонент приложения. CCache
mget() Извлекает несколько значений из кэша по указанным ключам. CCache
offsetExists() Возвращает, есть ли запись в кэше с указанным ключом. CCache
offsetGet() Извлекает значение из кэша по указанному ключу. CCache
offsetSet() Сохраняет значение, идентифицируемое ключом, в кэш. CCache
offsetUnset() Удаляет значение с указанным ключом из кэша. CCache
raiseEvent() Вызывает событие. CComponent
set() Сохраняет значение, идентифицируемое ключом, в кэше. CCache

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

Метод Описание Определено в
addValue() Сохраняет значение, идентифицируемое ключом, в кэше, если в кэше нет этого ключа. CRedisCache
connect() Устанавливает соединение с сервером redis. CRedisCache
deleteValue() Удаляет значение с указанным ключом из кэша. CRedisCache
flushValues() Удаляет все значения из кэша. CRedisCache
generateUniqueKey() CCache
getValue() Извлекает значение из кэша по указанному ключу. CRedisCache
getValues() Извлекает несколько значений из кэша по указанным ключам. CRedisCache
setValue() Сохраняет значение, идентифицируемое ключом, в кэше. CRedisCache

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

database свойство

public int $database;

используемая база данных redis. Это целое число, начинающееся с 0. По умолчанию 0.

hostname свойство

public string $hostname;

имя хоста для подключения к серверу redis. По умолчанию 'localhost'.

options свойство

public int $options;

параметры для передачи параметру flags функции stream_socket_client при подключении к серверу redis. По умолчанию STREAM_CLIENT_CONNECT.

См. также

  • http://php.net/manual/en/function.stream-socket-client.php

password свойство

public string $password;

пароль для аутентификации на сервере redis. Если не задан, команда AUTH не будет отправлена.

port свойство

public int $port;

порт для подключения к серверу redis. Порт по умолчанию 6379.

timeout свойство

public float $timeout;

таймаут для подключения к redis. Если не задан, используется таймаут, заданный в php.ini: ini_get("default_socket_timeout")

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

addValue() метод

protected boolean addValue(string $key, string $value, integer $expire)
$key string ключ, определяющий значение для кеширования
$value string значение для кеширования
$expire integer количество секунд, в течение которых значение кеша будет действовать. 0 означает, что значение никогда не истечёт.
{return} boolean true, если значение успешно сохранено в кеш, иначе false
Исходный код: framework/caching/CRedisCache.php#244 (показать)
protected function addValue($key,$value,$expire)
{
    if (
$expire == 0)
        return (bool)
$this->executeCommand('SETNX',array($key,$value));

    if(
$this->executeCommand('SETNX',array($key,$value)))
    {
        
$this->executeCommand('EXPIRE',array($key,$expire));
        return 
true;
    }
    else
        return 
false;
}

Сохраняет значение, идентифицируемое ключом, в кеш, если этот ключ в кеше отсутствует. Это реализация метода, объявленного в родительском классе.

connect() метод

protected void connect()
Исходный код: framework/caching/CRedisCache.php#82 (показать)
protected function connect()
{
    
$this->_socket=@stream_socket_client(
        
$this->hostname.':'.$this->port,
        
$errorNumber,
        
$errorDescription,
        
$this->timeout ? $this->timeout : ini_get("default_socket_timeout"),
        
$this->options
    
);
    if (
$this->_socket)
    {
        if(
$this->password!==null)
            
$this->executeCommand('AUTH',array($this->password));
        
$this->executeCommand('SELECT',array($this->database));
    }
    else
    {
        
$this->_socket = null;
        throw new 
CException('Failed to connect to redis: '.$errorDescription,(int)$errorNumber);
    }
}

Устанавливает соединение с сервером Redis. Не делает ничего, если соединение уже установлено.

deleteValue() метод

protected boolean deleteValue(string $key)
$key string ключ значения, подлежащего удалению
{return} boolean true, если удаление прошло без ошибок
Исходный код: framework/caching/CRedisCache.php#264 (показать)
protected function deleteValue($key)
{
    return (bool)
$this->executeCommand('DEL',array($key));
}

Удаляет значение с указанным ключом из кеша. Это реализация метода, объявленного в родительском классе.

executeCommand() метод

public array|bool|null|string executeCommand(string $name, array $params=array ( ))
$name string имя команды
$params array список параметров для команды
{return} array|bool|null|string В зависимости от исполняемой команды, этот метод возвращает различные типы данных:
  • true для команд, возвращающих «статус ответ».
  • string для команд, возвращающих «целое число ответ», если значение находится в диапазоне подписанного 64-битного целого числа.
  • string или null для команд, возвращающих «bulk ответ».
  • array для команд, возвращающих «Multi-bulk ответы».
Подробности о типах ответов см. в описании протокола Redis.
Исходный код: framework/caching/CRedisCache.php#123 (показать)
public function executeCommand($name,$params=array())
{
    if(
$this->_socket===null)
        
$this->connect();

    
array_unshift($params,$name);
    
$command='*'.count($params)."\r\n";
    foreach(
$params as $arg)
        
$command.='$'.$this->byteLength($arg)."\r\n".$arg."\r\n";

    
fwrite($this->_socket,$command);

    return 
$this->parseResponse(implode(' ',$params));
}

Выполняет команду Redis. Список доступных команд и их параметров см. в http://redis.io/commands.

flushValues() метод

protected boolean flushValues()
{return} boolean указывает, была ли операция очистки успешной.
Исходный код: framework/caching/CRedisCache.php#274 (показать)
protected function flushValues()
{
    return 
$this->executeCommand('FLUSHDB');
}

Удаляет все значения из кеша. Это реализация метода, объявленного в родительском классе.

getValue() метод

protected string|boolean getValue(string $key)
$key string уникальный ключ, определяющий кешируемое значение
{return} string|boolean значение, хранящееся в кеше, false, если значение отсутствует в кеше или истекло.
Исходный код: framework/caching/CRedisCache.php#199 (показать)
protected function getValue($key)
{
    return 
$this->executeCommand('GET',array($key));
}

Извлекает значение из кеша по указанному ключу. Это реализация метода, объявленного в родительском классе.

getValues() метод

protected array getValues(array $keys)
$keys array список ключей, определяющих кешируемые значения
{return} array список кешированных значений, индексированных по ключам
Исходный код: framework/caching/CRedisCache.php#209 (показать)
protected function getValues($keys)
{
    
$response=$this->executeCommand('MGET',$keys);
    
$result=array();
    
$i=0;
    foreach(
$keys as $key)
        
$result[$key]=$response[$i++];
    return 
$result;
}

Извлекает несколько значений из кеша по указанным ключам.

setValue() метод

protected boolean setValue(string $key, string $value, integer $expire)
$key string ключ, определяющий значение для кеширования
$value string значение для кеширования
$expire integer количество секунд, в течение которых значение кеша будет действовать. 0 означает, что значение никогда не истечёт.
{return} boolean true, если значение успешно сохранено в кеш, иначе false
Исходный код: framework/caching/CRedisCache.php#228 (показать)
protected function setValue($key,$value,$expire)
{
    if (
$expire==0)
        return (bool)
$this->executeCommand('SET',array($key,$value));
    return (bool)
$this->executeCommand('SETEX',array($key,$expire,$value));
}

Сохраняет значение, идентифицируемое ключом, в кеш. Это реализация метода, объявленного в родительском классе.

© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc/api/1.1/CRedisCache

Spec-Zone.ru

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