Class CDbCache
CDbCache implements a cache application component by storing cached data in a
database.
CDbCache stores cache data in a DB table named CDbCache::$cacheTableName
. If the
table does not exist, it will be automatically created. By setting CDbCache::$autoCreateCacheTable
to false, you can also manually create the DB table.
CDbCache relies on PDO to access database. By default, it will use a SQLite3 database under the
application runtime directory. You can also specify CDbCache::$connectionID
so that
it makes use of a DB application component to access database.
See CCache
manual for common cache operations that are supported by
CDbCache.
-
CComponent
-
CApplicationComponent
implements
IApplicationComponent
-
CCache
implements
ICache,
ArrayAccess
-
CDbCache
Methods summary
public
|
#
init( )
Initializes this application component.
Initializes this application component.
This method is required by the IApplicationComponent interface. It
ensures the existence of the cache DB table. It also removes expired data items
from the cache.
Overrides
|
public
integer
|
#
getGCProbability( )
Returns
integer the probability (parts per million) that garbage collection (GC) should be
performed when storing a piece of data in the cache. Defaults to 100, meaning
0.01% chance.
|
public
|
#
setGCProbability( integer $value )
Parameters
- $value
integer $value the probability (parts per million) that garbage collection (GC) should
be performed when storing a piece of data in the cache. Defaults to 100, meaning
0.01% chance. This number should be between 0 and 1000000. A value 0 meaning no
GC will be performed at all.
|
protected
|
#
createCacheTable( CDbConnection $db, string $tableName )
Creates the cache DB table.
Creates the cache DB table.
Parameters
- $db
CDbConnection
$db the database connection
- $tableName
string $tableName the name of the table to be created
|
public
CDbConnection
|
|
public
|
#
setDbConnection( CDbConnection $value )
Sets the DB connection used by the cache component.
Sets the DB connection used by the cache component.
Parameters
Since
1.1.5
|
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
|
#
gc( )
Removes the expired data values.
Removes the expired data values.
|
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
Since
1.1.5
Overrides
|
Methods inherited from CCache
add(),
delete(),
flush(),
generateUniqueKey(),
get(),
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
|
$connectionID
|
|
#
the ID of the CDbConnection application component. If not set, a
SQLite3 database will be automatically created and used. The SQLite database
file is <span
class="php-keyword1">protected</span>/runtime/cache-YiiVersion.db .
the ID of the CDbConnection application component. If not set, a
SQLite3 database will be automatically created and used. The SQLite database
file is <span
class="php-keyword1">protected</span>/runtime/cache-YiiVersion.db .
|
public
string
|
$cacheTableName
|
'YiiCache' |
#
name of the DB table to store cache content. Defaults to 'YiiCache'. Note, if
CDbCache::$autoCreateCacheTable is false and you want to create the DB table
manually by yourself, you need to make sure the DB table is of the following
structure:
(id CHAR(128) PRIMARY KEY, expire INTEGER, value BLOB)
Note, some DBMS might not support BLOB type. In this case, replace 'BLOB'
with a suitable binary data type (e.g. LONGBLOB in MySQL, BYTEA in
PostgreSQL.)
name of the DB table to store cache content. Defaults to 'YiiCache'. Note, if
CDbCache::$autoCreateCacheTable is false and you want to create the DB table
manually by yourself, you need to make sure the DB table is of the following
structure:
(id CHAR(128) PRIMARY KEY, expire INTEGER, value BLOB)
Note, some DBMS might not support BLOB type. In this case, replace 'BLOB'
with a suitable binary data type (e.g. LONGBLOB in MySQL, BYTEA in
PostgreSQL.)
See
|
public
boolean
|
$autoCreateCacheTable
|
true |
#
whether the cache DB table should be created automatically if it does not
exist. Defaults to true. If you already have the table created, it is
recommended you set this property to be false to improve performance.
whether the cache DB table should be created automatically if it does not
exist. Defaults to true. If you already have the table created, it is
recommended you set this property to be false to improve performance.
See
|
Magic properties summary
public
integer
|
$gCProbability
|
#
The probability (parts per million) that garbage collection (GC) should be
performed when storing a piece of data in the cache. Defaults to 100, meaning
0.01% chance.
The probability (parts per million) that garbage collection (GC) should be
performed when storing a piece of data in the cache. Defaults to 100, meaning
0.01% chance.
|
public
CDbConnection
|
$dbConnection
|
#
The DB connection instance.
The DB connection instance.
|