Class CRedisCache
CRedisCache implements a cache application component based on redis.
CRedisCache needs to be configured with CRedisCache::$hostname
, CRedisCache::$port
and
CRedisCache::$database
of the server to connect to. By default CRedisCache assumes
there is a redis server running on localhost at port 6379 and uses the database
number 0.
CRedisCache also supports the AUTH
command of redis. When the server needs authentication, you can set the CRedisCache::$password
property to authenticate with the server after connect.
See CCache
manual for common cache operations that are supported by
CRedisCache.
To use CRedisCache as the cache application component, configure the
application as follows,
array(
'components'=>array(
'cache'=>array(
'class'=>'CRedisCache',
'hostname'=>'localhost',
'port'=>6379,
'database'=>0,
),
),
)
The minimum required redis version is 2.0.0.
-
CComponent
-
CApplicationComponent
implements
IApplicationComponent
-
CCache
implements
ICache,
ArrayAccess
-
CRedisCache
Methods summary
protected
|
#
connect( )
Establishes a connection to the redis server. It does nothing if the
connection has already been established.
Establishes a connection to the redis server. It does nothing if the
connection has already been established.
Throws
|
public
array|boolean|null|string
|
#
executeCommand( string $name, array $params = array() )
Executes a redis command. For a list of available commands and their
parameters see http://redis.io/commands.
Parameters
- $name
string $name the name of the command
- $params
array $params list of parameters for the command
Returns
array|boolean|null|string Dependend on the executed command this method will return different data types:
<span class="php-keyword1">true</span> for commands
that return "status reply".
string for commands that return "integer reply" as the value is
in the range of a signed 64 bit integer.
string or <span
class="php-keyword1">null</span> for commands that return "bulk
reply".
<span class="php-keyword1">array</span> for
commands that return "Multi-bulk replies".
See redis
protocol description for details on the mentioned reply types.
Throws
|
protected
string|boolean
|
#
getValue( string $key )
Retrieves a value from cache with a specified key. This is the implementation
of the method declared in the parent class.
Retrieves a value from cache with a specified key. This is the implementation
of the method declared in the parent class.
Parameters
- $key
string $key a unique key identifying the cached value
Returns
string|boolean the value stored in cache, false if the value is not in the cache or expired.
Throws
CException
if this method is not overridden by child classes
Overrides
|
protected
array
|
#
getValues( array $keys )
Retrieves multiple values from cache with the specified keys.
Retrieves multiple values from cache with the specified keys.
Parameters
- $keys
array $keys a list of keys identifying the cached values
Returns
array a list of cached values indexed by the keys
Overrides
|
protected
boolean
|
#
setValue( string $key, string $value, integer $expire )
Stores a value identified by a key in cache. This is the implementation of
the method declared in the parent class.
Stores a value identified by a key in cache. This is the implementation of
the method declared in the parent class.
Parameters
- $key
string $key the key identifying the value to be cached
- $value
string $value the value to be cached
- $expire
integer $expire the number of seconds in which the cached value will expire. 0 means
never expire.
Returns
boolean true if the value is successfully stored into cache, false otherwise
Throws
CException
if this method is not overridden by child classes
Overrides
|
protected
boolean
|
#
addValue( string $key, string $value, integer $expire )
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.
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.
Parameters
- $key
string $key the key identifying the value to be cached
- $value
string $value the value to be cached
- $expire
integer $expire the number of seconds in which the cached value will expire. 0 means
never expire.
Returns
boolean true if the value is successfully stored into cache, false otherwise
Throws
CException
if this method is not overridden by child classes
Overrides
|
protected
boolean
|
#
deleteValue( string $key )
Deletes a value with the specified key from cache This is the implementation
of the method declared in the parent class.
Deletes a value with the specified key from cache This is the implementation
of the method declared in the parent class.
Parameters
- $key
string $key the key of the value to be deleted
Returns
boolean if no error happens during deletion
Throws
CException
if this method is not overridden by child classes
Overrides
|
protected
boolean
|
#
flushValues( )
Deletes all values from cache. This is the implementation of the method
declared in the parent class.
Deletes all values from cache. This is the implementation of the method
declared in the parent class.
Returns
boolean whether the flush operation was successful.
Throws
CException
if this method is not overridden by child classes
Overrides
|
Methods inherited from CCache
add(),
delete(),
flush(),
generateUniqueKey(),
get(),
init(),
mget(),
offsetExists(),
offsetGet(),
offsetSet(),
offsetUnset(),
set()
|
Methods inherited from CComponent
__call(),
__get(),
__isset(),
__set(),
__unset(),
asa(),
attachBehavior(),
attachBehaviors(),
attachEventHandler(),
canGetProperty(),
canSetProperty(),
detachBehavior(),
detachBehaviors(),
detachEventHandler(),
disableBehavior(),
disableBehaviors(),
enableBehavior(),
enableBehaviors(),
evaluateExpression(),
getEventHandlers(),
hasEvent(),
hasEventHandler(),
hasProperty(),
raiseEvent()
|
Properties summary
public
string
|
$hostname
|
'localhost' |
#
hostname to use for connecting to the redis server. Defaults to
'localhost'.
hostname to use for connecting to the redis server. Defaults to
'localhost'.
|
public
integer
|
$port
|
6379 |
#
the port to use for connecting to the redis server. Default port is 6379.
the port to use for connecting to the redis server. Default port is 6379.
|
public
string
|
$password
|
|
#
the password to use to authenticate with the redis server. If not set, no
AUTH command will be sent.
the password to use to authenticate with the redis server. If not set, no
AUTH command will be sent.
|
public
integer
|
$database
|
0 |
#
the redis database to use. This is an integer value starting from 0. Defaults
to 0.
the redis database to use. This is an integer value starting from 0. Defaults
to 0.
|
public
float
|
$timeout
|
null |
#
timeout to use for connection to redis. If not set the timeout set in php.ini
will be used: ini_get("default_socket_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")
|