Spec-Zone.ru › Yii 1.1

CMemCache

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

CMemCache можно настроить со списком серверов memcache, установив свойство servers. По умолчанию CMemCache предполагает наличие сервера memcache, работающего на localhost на порту 11211.

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

Обратите внимание, что нет мер безопасности для защиты данных в memcache. К данным в memcache может получить доступ любой процесс, работающий в системе.

Чтобы использовать CMemCache в качестве компонента кеширования, настройте приложение следующим образом:
array(
    'components'=>array(
        'cache'=>array(
            'class'=>'CMemCache',
            'servers'=>array(
                array(
                    'host'=>'server1',
                    'port'=>11211,
                    'weight'=>60,
                ),
                array(
                    'host'=>'server2',
                    'port'=>11211,
                    'weight'=>40,
                ),
            ),
        ),
    ),
)
В примере выше используются два сервера memcache: server1 и server2. Вы можете настроить дополнительные свойства каждого сервера, включая: хост, порт, постоянное соединение, вес, таймаут, интервал повторных попыток, статус. См. http://www.php.net/manual/en/function.memcache-addserver.php для получения более подробной информации.

CMemCache также может использоваться с memcached. Для этого установите useMemcached в значение true.

Свойства Public

Свойство Тип Описание Определено
behaviors массив поведения, которые должны быть присоединены к данному компоненту. CApplicationComponent
hashKey boolean используется ли md5-хеширование ключа кеша для целей нормализации. CCache
isInitialized boolean Проверяет, был ли инициализирован этот компонент приложения. CApplicationComponent
keyPrefix строка строка, добавляемая в префикс каждого ключа кеша, чтобы он был уникальным. CCache
memCache Memcache|Memcached экземпляр memcache (или memcached, если useMemcached равен true), используемый этим компонентом. CMemCache
serializer массив|boolean функции, используемые для сериализации и десериализации данных кеша. CCache
servers массив список конфигураций серверов memcache. CMemCache
useMemcached boolean используется ли memcached или memcache в качестве базового расширения кеширования. CMemCache
END_OF_DOCUMENT_MARKER

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

Метод Описание Определено в
__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
flush() Удаляет все значения из кэша. CCache
get() Извлекает значение из кэша по указанному ключу. CCache
getEventHandlers() Возвращает список присоединённых обработчиков событий для события. CComponent
getIsInitialized() Проверяет, был ли инициализирован этот компонент приложения. CApplicationComponent
getMemCache() Возвращает экземпляр memcache (или memcached, если useMemcached имеет значение true), используемый этим компонентом. CMemCache
getServers() Возвращает список конфигураций серверов memcache. Каждый элемент — CMemCacheServerConfiguration. CMemCache
hasEvent() Определяет, определено ли событие. CComponent
hasEventHandler() Проверяет, имеются ли присоединённые обработчики для события с заданным именем. CComponent
hasProperty() Определяет, определено ли свойство. CComponent
init() Инициализирует этот компонент приложения. CMemCache
mget() Извлекает несколько значений из кэша по указанным ключам. CCache
offsetExists() Возвращает, существует ли запись в кэше с указанным ключом. CCache
offsetGet() Извлекает значение из кэша по указанному ключу. CCache
offsetSet() Сохраняет значение, идентифицируемое ключом, в кэш. CCache
offsetUnset() Удаляет значение с указанным ключом из кэша. CCache
raiseEvent() Вызывает событие. CComponent
set() Сохраняет значение, идентифицируемое ключом, в кэш. CCache
setServers() Устанавливает список конфигураций серверов memcache. Каждый элемент должен быть массивом со следующими ключами: host, port, persistent, weight, timeout, retryInterval, status. CMemCache

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

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

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

memCache свойство только для чтения

public Memcache|Memcached getMemCache()

экземпляр memcache (или memcached, если useMemcached имеет значение true), используемый этим компонентом.

servers свойство

public array getServers()
public void setServers(array $config)

список конфигураций серверов memcache. Каждый элемент — CMemCacheServerConfiguration.

useMemcached свойство

public boolean $useMemcached;

использовать memcached или memcache в качестве базового расширения кэширования. Если true, используется memcached. Если false, используется memcache. По умолчанию false.

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

addValue() метод

protected boolean addValue(string $key, string $value, integer $expire)
$key string ключ, идентифицирующий значение для кэширования
$value string значение для кэширования
$expire integer количество секунд, в течение которых кэшированное значение будет действовать. 0 — никогда не истекает.
{return} boolean true, если значение успешно сохранено в кэш, иначе false
Исходный код: framework/caching/CMemCache.php#190 (показать)
protected function addValue($key,$value,$expire)
{
    if(
$expire>0)
        
$expire+=time();
    else
        
$expire=0;

    return 
$this->useMemcached ? $this->_cache->add($key,$value,$expire) : $this->_cache->add($key,$value,0,$expire);
}

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

deleteValue() метод

protected boolean deleteValue(string $key)
$key строка ключ значения, которое нужно удалить
{return} логическое значение если удаление произошло без ошибок
Исходный код: framework/caching/CMemCache.php#206 (показать)
protected function deleteValue($key)
{
    return 
$this->_cache->delete($key, 0);
}

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

flushValues() метод (доступен начиная с v1.1.5)

protected boolean flushValues()
{return} логическое значение успешность операции сброса.
Исходный код: framework/caching/CMemCache.php#217 (показать)
protected function flushValues()
{
    return 
$this->_cache->flush();
}

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

getMemCache() метод

public Memcache|Memcached getMemCache()
{return} Memcache|Memcached экземпляр memcache (или memcached, если useMemcached равен true), используемый этим компонентом.
Исходный код: framework/caching/CMemCache.php#108 (показать)
public function getMemCache()
{
    if(
$this->_cache!==null)
        return 
$this->_cache;
    else
    {
        
$extension=$this->useMemcached ? 'memcached' : 'memcache';
        if(!
extension_loaded($extension))
            throw new 
CException(Yii::t('yii',"CMemCache requires PHP {extension} extension to be loaded.",
                array(
'{extension}'=>$extension)));
        return 
$this->_cache=$this->useMemcached ? new Memcached : new Memcache;
    }
}

getServers() метод

public array getServers()
{return} массив список конфигураций серверов memcache. Каждый элемент — это CMemCacheServerConfiguration.
Исходный код: framework/caching/CMemCache.php#125 (показать)
public function getServers()
{
    return 
$this->_servers;
}

getValue() метод

protected string|boolean getValue(string $key)
$key строка уникальный ключ, идентифицирующий кэшируемое значение
{return} строка|логическое значение значение, хранящееся в кэше; ложь, если значения нет в кэше или оно истекло.
Исходный код: framework/caching/CMemCache.php#147 (показать)
protected function getValue($key)
{
    return 
$this->_cache->get($key);
}

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

getValues() метод

protected array getValues(array $keys)
$keys массив список ключей, идентифицирующих кэшируемые значения
{return} массив список кэшированных значений, индексированных по ключам
Исходный код: framework/caching/CMemCache.php#157 (показать)
protected function getValues($keys)
{
    return 
$this->useMemcached ? $this->_cache->getMulti($keys) : $this->_cache->get($keys);
}

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

init() метод

public void init()
Исходный код: framework/caching/CMemCache.php#85 (показать)
public function init()
{
    
parent::init();
    
$servers=$this->getServers();
    
$cache=$this->getMemCache();
    if(
count($servers))
    {
        foreach(
$servers as $server)
        {
            if(
$this->useMemcached)
                
$cache->addServer($server->host,$server->port,$server->weight);
            else
                
$cache->addServer($server->host,$server->port,$server->persistent,$server->weight,$server->timeout,$server->retryInterval,$server->status);
        }
    }
    else
        
$cache->addServer('localhost',11211);
}

Инициализирует компонент приложения. Этот метод требуется интерфейсом IApplicationComponent. Он создает экземпляр memcache и добавляет серверы memcache.

setServers() метод

public void setServers(array $config)
$config массив список конфигураций серверов memcache. Каждый элемент должен быть массивом со следующими ключами: host, port, persistent, weight, timeout, retryInterval, status.
Исходный код: framework/caching/CMemCache.php#135 (показать)
public function setServers($config)
{
    foreach(
$config as $c)
        
$this->_servers[]=new CMemCacheServerConfiguration($c);
}

См. также

  • http://www.php.net/manual/en/function.Memcache-addServer.php

setValue() метод

protected boolean setValue(string $key, string $value, integer $expire)
$key строка ключ, идентифицирующий значение для кэширования
$value строка значение для кэширования
$expire целое число количество секунд, после которого кэшированное значение истечет. 0 — никогда не истекает.
{return} логическое значение истина, если значение успешно сохранено в кэше; ложь в противном случае
Исходный код: framework/caching/CMemCache.php#171 (показать)
protected function setValue($key,$value,$expire)
{
    if(
$expire>0)
        
$expire+=time();
    else
        
$expire=0;

    return 
$this->useMemcached ? $this->_cache->set($key,$value,$expire) : $this->_cache->set($key,$value,0,$expire);
}

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

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

Spec-Zone.ru

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