Package | system.caching |
---|---|
Inheritance | class CRedisCache » CCache » CApplicationComponent » CComponent |
Implements | ArrayAccess, ICache, IApplicationComponent |
Since | 1.1.14 |
Source Code | framework/caching/CRedisCache.php |
array( 'components'=>array( 'cache'=>array( 'class'=>'CRedisCache', 'hostname'=>'localhost', 'port'=>6379, 'database'=>0, 'options'=>STREAM_CLIENT_CONNECT, ), ), )
Property | Type | Description | Defined By |
---|---|---|---|
behaviors | array | the behaviors that should be attached to this component. | CApplicationComponent |
database | int | the redis database to use. | CRedisCache |
hashKey | boolean | whether to md5-hash the cache key for normalization purposes. | CCache |
hostname | string | hostname to use for connecting to the redis server. | CRedisCache |
isInitialized | boolean | Checks if this application component has been initialized. | CApplicationComponent |
keyPrefix | string | a string prefixed to every cache key so that it is unique. | CCache |
options | int | the options to pass to the flags parameter of stream_socket_client when connecting to the redis server. | CRedisCache |
password | string | the password to use to authenticate with the redis server. | CRedisCache |
port | int | the port to use for connecting to the redis server. | CRedisCache |
serializer | array|boolean | the functions used to serialize and unserialize cached data. | CCache |
timeout | float | timeout to use for connection to redis. | CRedisCache |
Method | Description | Defined By |
---|---|---|
__call() | Calls the named method which is not a class method. | CComponent |
__get() | Returns a property value, an event handler list or a behavior based on its name. | CComponent |
__isset() | Checks if a property value is null. | CComponent |
__set() | Sets value of a component property. | CComponent |
__unset() | Sets a component property to be null. | CComponent |
add() | Stores a value identified by a key into cache if the cache does not contain this key. | CCache |
asa() | Returns the named behavior object. | CComponent |
attachBehavior() | Attaches a behavior to this component. | CComponent |
attachBehaviors() | Attaches a list of behaviors to the component. | CComponent |
attachEventHandler() | Attaches an event handler to an event. | CComponent |
canGetProperty() | Determines whether a property can be read. | CComponent |
canSetProperty() | Determines whether a property can be set. | CComponent |
delete() | Deletes a value with the specified key from cache | CCache |
detachBehavior() | Detaches a behavior from the component. | CComponent |
detachBehaviors() | Detaches all behaviors from the component. | CComponent |
detachEventHandler() | Detaches an existing event handler. | CComponent |
disableBehavior() | Disables an attached behavior. | CComponent |
disableBehaviors() | Disables all behaviors attached to this component. | CComponent |
enableBehavior() | Enables an attached behavior. | CComponent |
enableBehaviors() | Enables all behaviors attached to this component. | CComponent |
evaluateExpression() | Evaluates a PHP expression or callback under the context of this component. | CComponent |
executeCommand() | Executes a redis command. | CRedisCache |
flush() | Deletes all values from cache. | CCache |
get() | Retrieves a value from cache with a specified key. | CCache |
getEventHandlers() | Returns the list of attached event handlers for an event. | CComponent |
getIsInitialized() | Checks if this application component has been initialized. | CApplicationComponent |
hasEvent() | Determines whether an event is defined. | CComponent |
hasEventHandler() | Checks whether the named event has attached handlers. | CComponent |
hasProperty() | Determines whether a property is defined. | CComponent |
init() | Initializes the application component. | CCache |
mget() | Retrieves multiple values from cache with the specified keys. | CCache |
offsetExists() | Returns whether there is a cache entry with a specified key. | CCache |
offsetGet() | Retrieves the value from cache with a specified key. | CCache |
offsetSet() | Stores the value identified by a key into cache. | CCache |
offsetUnset() | Deletes the value with the specified key from cache | CCache |
raiseEvent() | Raises an event. | CComponent |
set() | Stores a value identified by a key into cache. | CCache |
Method | Description | Defined By |
---|---|---|
addValue() | Stores a value identified by a key into cache if the cache does not contain this key. | CRedisCache |
connect() | Establishes a connection to the redis server. | CRedisCache |
deleteValue() | Deletes a value with the specified key from cache | CRedisCache |
flushValues() | Deletes all values from cache. | CRedisCache |
generateUniqueKey() | CCache | |
getValue() | Retrieves a value from cache with a specified key. | CRedisCache |
getValues() | Retrieves multiple values from cache with the specified keys. | CRedisCache |
setValue() | Stores a value identified by a key in cache. | CRedisCache |
public int $database;
the redis database to use. This is an integer value starting from 0. Defaults to 0.
public string $hostname;
hostname to use for connecting to the redis server. Defaults to 'localhost'.
public int $options;
the options to pass to the flags parameter of stream_socket_client when connecting to the redis server. Defaults to STREAM_CLIENT_CONNECT.
public string $password;
the password to use to authenticate with the redis server. If not set, no AUTH command will be sent.
public int $port;
the port to use for connecting to the redis server. Default port is 6379.
public float $timeout;
timeout to use for connection to redis. If not set the timeout set in php.ini will be used: ini_get("default_socket_timeout")
protected boolean addValue(string $key, string $value, integer $expire) | ||
$key | string | the key identifying the value to be cached |
$value | string | the value to be cached |
$expire | integer | the number of seconds in which the cached value will expire. 0 means never expire. |
{return} | boolean | true if the value is successfully stored into cache, false otherwise |
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;
}
Stores a value identified by a key into cache if the cache does not contain this key. This is the implementation of the method declared in the parent class.
protected void connect() |
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);
}
}
Establishes a connection to the redis server. It does nothing if the connection has already been established.
protected boolean deleteValue(string $key) | ||
$key | string | the key of the value to be deleted |
{return} | boolean | if no error happens during deletion |
protected function deleteValue($key)
{
return (bool)$this->executeCommand('DEL',array($key));
}
Deletes a value with the specified key from cache This is the implementation of the method declared in the parent class.
public array|bool|null|string executeCommand(string $name, array $params=array ( )) | ||
$name | string | the name of the command |
$params | array | list of parameters for the command |
{return} | array|bool|null|string | Dependend on the executed command this method will return different data types:
|
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));
}
Executes a redis command. For a list of available commands and their parameters see http://redis.io/commands.
protected boolean flushValues() | ||
{return} | boolean | whether the flush operation was successful. |
protected function flushValues()
{
return $this->executeCommand('FLUSHDB');
}
Deletes all values from cache. This is the implementation of the method declared in the parent class.
protected string|boolean getValue(string $key) | ||
$key | string | a unique key identifying the cached value |
{return} | string|boolean | the value stored in cache, false if the value is not in the cache or expired. |
protected function getValue($key)
{
return $this->executeCommand('GET',array($key));
}
Retrieves a value from cache with a specified key. This is the implementation of the method declared in the parent class.
protected array getValues(array $keys) | ||
$keys | array | a list of keys identifying the cached values |
{return} | array | a list of cached values indexed by the keys |
protected function getValues($keys)
{
$response=$this->executeCommand('MGET',$keys);
$result=array();
$i=0;
foreach($keys as $key)
$result[$key]=$response[$i++];
return $result;
}
Retrieves multiple values from cache with the specified keys.
protected boolean setValue(string $key, string $value, integer $expire) | ||
$key | string | the key identifying the value to be cached |
$value | string | the value to be cached |
$expire | integer | the number of seconds in which the cached value will expire. 0 means never expire. |
{return} | boolean | true if the value is successfully stored into cache, false otherwise |
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));
}
Stores a value identified by a key in cache. This is the implementation of the method declared in the parent class.
© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc/api/1.1/CRedisCache