PHP Class Prado\Caching\TMemCache
TMemCache implements a cache application module based on {@link http://www.danga.com/memcached/ memcached}.
TMemCache can be configured with the Host and Port properties, which
specify the host and port of the memcache server to be used.
By default, they take the value 'localhost' and 11211, respectively.
These properties must be set before {@link init} is invoked.
The following basic cache operations are implemented:
- {@link get} : retrieve the value with a key (if any) from cache
- {@link set} : store the value with a key into cache
- {@link add} : store the value only if cache does not have this key
- {@link delete} : delete the value with the specified key from cache
- {@link flush} : delete all values from cache
Each value is associated with an expiration time. The {@link get} operation
ensures that any expired value will not be returned. The expiration time can
be specified by the number of seconds (maximum 60*60*24*30)
or a UNIX timestamp. A expiration time 0 represents never expire.
By definition, cache does not ensure the existence of a value
even if it never expires. Cache is not meant to be an persistent storage.
Also 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 this module, the memcache PHP extension must be loaded.
Some usage examples of TMemCache are as follows,
$cache=new TMemCache; // TMemCache may also be loaded as a Prado application module
$cache->init(null);
$cache->add('object',$object);
$object2=$cache->get('object');
You can configure TMemCache two different ways. If you only need one memcache server
you may use the method as follows.
If you want a more complex configuration, you may use the method as follows.
If loaded, TMemCache will register itself with {@link TApplication} as the
cache module. It can be accessed via {@link TApplication::getCache()}.
TMemCache may be configured in application configuration file as follows
where {@link getHost Host} and {@link getPort Port} are configurable properties
of TMemCache.
Automatic compression of values may be used (using zlib extension) by setting {@link getThreshold Threshold} and {@link getMinSavings MinSavings} properties.
NB : MemCache server(s) must be restarted to apply settings. Require (PECL memcache >= 2.0.0) or memcached if {@link useMemcached} is true.
Show file
Open project: pradosoft/prado
Public Methods
Protected Methods
Method |
Description |
|
addValue ( $key, $value, $expire ) : boolean |
Stores a value identified by a key into cache if the cache does not contain this key. |
|
deleteValue ( $key ) : boolean |
Deletes a value with the specified key from cache
This is the implementation of the method declared in the parent class. |
|
getValue ( $key ) : string |
Retrieves a value from cache with a specified key. |
|
setValue ( $key, $value, $expire ) : boolean |
Stores a value identified by a key in cache. |
|
Private Methods
Method |
Description |
|
loadConfig ( $xml ) |
Loads configuration from an XML element |
|
Method Details
__destruct()
public method
Disconnect the memcache server.
addValue()
protected method
This is the implementation of the method declared in the parent class.
protected addValue ( $key, $value, $expire ) : boolean |
return |
boolean |
true if the value is successfully stored into cache, false otherwise |
deleteValue()
protected method
Deletes a value with the specified key from cache
This is the implementation of the method declared in the parent class.
Be careful of performing this operation if the cache is shared by multiple applications.
getMinSavings()
public method
getThreshold()
public method
getUseMemcached()
public method
getValue()
protected method
This is the implementation of the method declared in the parent class.
protected getValue ( $key ) : string |
return |
string |
the value stored in cache, false if the value is not in the cache or expired. |
This method is required by the IModule interface. It makes sure that
UniquePrefix has been set, creates a Memcache instance and connects
to the memcache server.
setMinSavings()
public method
setThreshold()
public method
setUseMemcached()
public method
setValue()
protected method
This is the implementation of the method declared in the parent class.
protected setValue ( $key, $value, $expire ) : boolean |
return |
boolean |
true if the value is successfully stored into cache, false otherwise |