CMemCache
CMemCache implements a cache application component based on
memcached.
CMemCache can be configured with a list of memcache servers by settings
its
servers property. By default, CMemCache assumes
there is a memcache server running on localhost at port 11211.
See
CCache manual for common cache operations that are supported by CMemCache.
Note, there is no security measure to protected data in memcache.
All data in memcache can be accessed by any process running in the system.
To use CMemCache as the cache application component, configure the application as follows,
array(
'components'=>array(
'cache'=>array(
'class'=>'CMemCache',
'servers'=>array(
array(
'host'=>'server1',
'port'=>11211,
'weight'=>60,
),
array(
'host'=>'server2',
'port'=>11211,
'weight'=>40,
),
),
),
),
)
In the above, two memcache servers are used: server1 and server2.
You can configure more properties of every server, including:
host, port, persistent, weight, timeout, retryInterval, status.
See
http://www.php.net/manual/en/function.memcache-addserver.php
for more details.
Since version 1.0.6, CMemCache can also be used with
memcached.
To do so, set
useMemcached to be true.
Property Details
the memcache instance (or memcached if useMemcached is true) used by this component.
list of memcache server configurations. Each element is a CMemCacheServerConfiguration.
public boolean $useMemcached;
whether to use memcached
as the underlying caching extension. Defaults to false, meaning using
memcache.
Method Details
|
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 |
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 boolean deleteValue(string $key)
|
| $key |
string |
the key of the value to be deleted |
| {return} |
boolean |
if no error happens during deletion |
Deletes a value with the specified key from cache
This is the implementation of the method declared in the parent class.
Deletes all values from cache.
Be careful of performing this operation if the cache is shared by multiple applications.
|
public mixed getMemCache()
|
| {return} |
mixed |
the memcache instance (or memcached if useMemcached is true) used by this component. |
|
protected string getValue(string $key)
|
| $key |
string |
a unique key identifying the cached value |
| {return} |
string |
the value stored in cache, false if the value is not in the cache or expired. |
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 |
Retrieves multiple values from cache with the specified keys.
Initializes this application component.
This method is required by the IApplicationComponent interface.
It creates the memcache instance and adds memcache servers.
|
public void setServers(array $config)
|
| $config |
array |
list of memcache server configurations. Each element must be an array
with the following keys: host, port, persistent, weight, timeout, retryInterval, status. |
|
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 |
Stores a value identified by a key in cache.
This is the implementation of the method declared in the parent class.
The interface to use this and other cache classes is through the CCache base class, which you get to via
Yii::app()->cache, for exampleYii::app()->cache->set($id, $value);It's discussed in the documentation on the Guide's Caching section.