Class TMemCache
TMemCache class
TMemCache implements a cache application module based on 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
TMemCache::init()
is invoked.
The following basic cache operations are implemented:
TCache::get()
: retrieve the value with a key (if any) from cacheTCache::set()
: store the value with a key into cacheTCache::add()
: store the value only if cache does not have this keyTCache::delete()
: delete the value with the specified key from cacheTMemCache::flush()
: delete all values from cache
Each value is associated with an expiration time. The TCache::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.
<module id="cache" class="System.Caching.TMemCache" Host="localhost" Port="11211" />
If you want a more complex configuration, you may use the method as follows.
<module id="cache" classs="System.Caching.TMemCache"> <server Host="localhost" Port="11211" Weight="1" Timeout="300" RetryInterval="15" /> <server Host="anotherhost" Port="11211" Weight="1" Timeout="300" RetryInterval="15" /> </module>
If loaded, TMemCache will register itself with TApplication
as the
cache module. It can be accessed via TApplication::getCache()
.
TMemCache may be configured in application configuration file as follows
<module id="cache" class="System.Caching.TMemCache" Host="localhost" Port="11211" />
where getHost Host and getPort Port are configurable properties of TMemCache.
Automatic compression of values may be used (using zlib extension) by setting getThreshold Threshold and getMinSavings MinSavings properties. NB : MemCache server(s) must be restarted to apply settings. Require (PECL memcache >= 2.0.0).
- TComponent
-
TApplicationComponent
-
TModule implements IModule
-
TCache implements ICache, ArrayAccess
-
TMemCache
Copyright: Copyright © 2005-2014 PradoSoft
License: http://www.pradosoft.com/license/
Author: Qiang Xue <qiang.xue@gmail.com>
Since: 3.0
Located at Caching/TMemCache.php
public
|
|
public
|
#
init(
Initializes this module. 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. |
public
string
|
|
public
|
|
public
integer
|
|
public
|
|
public
integer
|
|
public
|
|
public
float
|
|
public
|
|
protected
string
|
#
getValue( string $key )
Retrieves a value from cache with a specified key. This is the implementation of the method declared in the parent class. |
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. |
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. |
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. |
public
|
#
flush( )
Deletes all values from cache. Be careful of performing this operation if the cache is shared by multiple applications. |
add(),
delete(),
generateUniqueKey(),
get(),
getKeyPrefix(),
getPrimaryCache(),
offsetExists(),
offsetGet(),
offsetSet(),
offsetUnset(),
set(),
setKeyPrefix(),
setPrimaryCache()
|
getID(),
setID()
|
getApplication(),
getRequest(),
getResponse(),
getService(),
getSession(),
getUser(),
publishAsset(),
publishFilePath()
|
GLOBAL_RAISE_EVENT_LISTENER
|