Cache/Backend/Memcached.php
LICENSE
This source file is subject to the new BSD license that is bundled with this package in the file LICENSE.txt. It is also available through the world-wide-web at this URL: http://framework.zend.com/license/new-bsd If you did not receive a copy of the license and are unable to obtain it through the world-wide-web, please send an email to license@zend.com so we can send you a copy immediately.
- Category
- Zend
- Copyright
- Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- License
- New BSD License
- Package
- Zend_Cache
- Subpackage
- Zend_Cache_Backend
- Version
- $Id: Memcached.php 24593 2012-01-05 20:35:02Z matthew $
\Zend_Cache_Backend_Memcached
- Implements
- \Zend_Cache_Backend_ExtendedInterface
- Parent(s)
- \Zend_Cache_Backend
- Copyright
- Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- License
- New BSD License
Constants

TAGS_UNSUPPORTED_BY_CLEAN_OF_MEMCACHED_BACKEND
= 'Zend_Cache_Backend_Memcached::clean() : tags are unsupported by the Memcached backend'
Properties


array $_directives = array('lifetime' => 3600, 'logging' => false, 'logger' => null)
=====> (int) lifetime : - Cache lifetime (in seconds) - If null, the cache is valid forever
=====> (int) logging : - if set to true, a logging is activated throw Zend_Log
array('lifetime' => 3600, 'logging' => false, 'logger' => null)
Details- Type
- array
- Inherited_from
- \Zend_Cache_Backend::$$_directives


array $_options = array('servers' => array(array('host' => self::DEFAULT_HOST, 'port' => self::DEFAULT_PORT, 'persistent' => self::DEFAULT_PERSISTENT, 'weight' => self::DEFAULT_WEIGHT, 'timeout' => self::DEFAULT_TIMEOUT, 'retry_interval' => self::DEFAULT_RETRY_INTERVAL, 'status' => self::DEFAULT_STATUS, 'failure_callback' => self::DEFAULT_FAILURE_CALLBACK)), 'compression' => false, 'compatibility' => false)
=====> (array) servers : an array of memcached server ; each memcached server is described by an associative array : 'host' => (string) : the name of the memcached server 'port' => (int) : the port of the memcached server 'persistent' => (bool) : use or not persistent connections to this memcached server 'weight' => (int) : number of buckets to create for this server which in turn control its probability of it being selected. The probability is relative to the total weight of all servers. 'timeout' => (int) : value in seconds which will be used for connecting to the daemon. Think twice before changing the default value of 1 second - you can lose all the advantages of caching if your connection is too slow. 'retry_interval' => (int) : controls how often a failed server will be retried, the default value is 15 seconds. Setting this parameter to -1 disables automatic retry. 'status' => (bool) : controls if the server should be flagged as online. 'failure_callback' => (callback) : Allows the user to specify a callback function to run upon encountering an error. The callback is run before failover is attempted. The function takes two parameters, the hostname and port of the failed server.
=====> (boolean) compression : true if you want to use on-the-fly compression
=====> (boolean) compatibility : true if you use old memcache server or extension
array('servers' => array(array('host' => self::DEFAULT_HOST, 'port' => self::DEFAULT_PORT, 'persistent' => self::DEFAULT_PERSISTENT, 'weight' => self::DEFAULT_WEIGHT, 'timeout' => self::DEFAULT_TIMEOUT, 'retry_interval' => self::DEFAULT_RETRY_INTERVAL, 'status' => self::DEFAULT_STATUS, 'failure_callback' => self::DEFAULT_FAILURE_CALLBACK)), 'compression' => false, 'compatibility' => false)
Details- Type
- array
Methods


__construct(array $options = array()) : void
Constructor
Name | Type | Description |
---|---|---|
$options | array | associative array of options |
Exception | Description |
---|---|
\Zend_Cache_Exception |


_isGoodTmpDir(string $dir) : boolean
Verify if the given temporary directory is readable and writable
Inherited from: \Zend_Cache_Backend::_isGoodTmpDir()Name | Type | Description |
---|---|---|
$dir | string | temporary directory |
Type | Description |
---|---|
boolean | true if the directory is ok |


_log(string $message, $priority = 4) : void
Name | Type | Description |
---|---|---|
$message | string | |
$priority |
Exception | Description |
---|---|
\Zend_Cache_Exception |


_loggerSanity() : void
Make sure if we enable logging that the Zend_Log class is available.
Inherited from: \Zend_Cache_Backend::_loggerSanity()Create a default log object if none is set.
Exception | Description |
---|---|
\Zend_Cache_Exception |


clean(string $mode = \Zend_Cache::CLEANING_MODE_ALL, array $tags = array()) : boolean
Clean some cache records
Available modes are : 'all' (default) => remove all cache entries ($tags is not used) 'old' => unsupported 'matchingTag' => unsupported 'notMatchingTag' => unsupported 'matchingAnyTag' => unsupported
Name | Type | Description |
---|---|---|
$mode | string | Clean mode |
$tags | array | Array of tags |
Type | Description |
---|---|
boolean | True if no problem |
Exception | Description |
---|---|
\Zend_Cache_Exception |


getCapabilities() : array
Return an associative array of capabilities (booleans) of the backend
The array must include these keys : - automatic_cleaning (is automating cleaning necessary) - tags (are tags supported) - expired_read (is it possible to read expired cache records (for doNotTestCacheValidity option for example)) - priority does the backend deal with priority when saving - infinite_lifetime (is infinite lifetime can work with this backend) - get_list (is it possible to get the list of cache ids and the complete list of tags)
Type | Description |
---|---|
array | associative of with capabilities |


getFillingPercentage() : int
Return the filling percentage of the backend storage
Type | Description |
---|---|
int | integer between 0 and 100 |
Exception | Description |
---|---|
\Zend_Cache_Exception |


getIds() : array
Return an array of stored cache ids
Type | Description |
---|---|
array | array of stored cache ids (string) |


getIdsMatchingAnyTags(array $tags = array()) : array
Return an array of stored cache ids which match any given tags
In case of multiple tags, a logical AND is made between tags
Name | Type | Description |
---|---|---|
$tags | array | array of tags |
Type | Description |
---|---|
array | array of any matching cache ids (string) |


getIdsMatchingTags(array $tags = array()) : array
Return an array of stored cache ids which match given tags
In case of multiple tags, a logical AND is made between tags
Name | Type | Description |
---|---|---|
$tags | array | array of tags |
Type | Description |
---|---|
array | array of matching cache ids (string) |


getIdsNotMatchingTags(array $tags = array()) : array
Return an array of stored cache ids which don't match given tags
In case of multiple tags, a logical OR is made between tags
Name | Type | Description |
---|---|---|
$tags | array | array of tags |
Type | Description |
---|---|
array | array of not matching cache ids (string) |


getLifetime(int $specificLifetime) : int
if $specificLifetime is not false, the given specific life time is used else, the global lifetime is used
Name | Type | Description |
---|---|---|
$specificLifetime | int |
Type | Description |
---|---|
int | Cache life time |


getMetadatas(string $id) : array
Return an array of metadatas for the given cache id
The array must include these keys : - expire : the expire timestamp - tags : a string array of tags - mtime : timestamp of last modification time
Name | Type | Description |
---|---|---|
$id | string | cache id |
Type | Description |
---|---|
array | array of metadatas (false if the cache id is not found) |


getOption(string $name) : mixed
Name | Type | Description |
---|---|---|
$name | string | Optional, the options name to return |
Type | Description |
---|---|
mixed |
Exception | Description |
---|---|
\Zend_Cache_Exceptions |


getTags() : array
Return an array of stored tags
Type | Description |
---|---|
array | array of stored tags (string) |


getTmpDir() : string
Determine system TMP directory and detect if we have read access
Inherited from: \Zend_Cache_Backend::getTmpDir()inspired from Zend_File_Transfer_Adapter_Abstract
Type | Description |
---|---|
string |
Exception | Description |
---|---|
\Zend_Cache_Exception | if unable to determine directory |


isAutomaticCleaningAvailable() : boolean
Return true if the automatic cleaning is available for the backend
DEPRECATED : use getCapabilities() instead
Type | Description |
---|---|
boolean |


load(string $id, boolean $doNotTestCacheValidity = false) : string | false
Test if a cache is available for the given id and (if yes) return it (false else)
Name | Type | Description |
---|---|---|
$id | string | Cache id |
$doNotTestCacheValidity | boolean | If set to true, the cache validity won't be tested |
Type | Description |
---|---|
string | false | cached datas |


remove(string $id) : boolean
Remove a cache record
Name | Type | Description |
---|---|---|
$id | string | Cache id |
Type | Description |
---|---|
boolean | True if no problem |


save(string $data, string $id, array $tags = array(), int $specificLifetime = false) : boolean
Save some string datas into a cache record
Note : $data is always "string" (serialization is done by the core not by the backend)
Name | Type | Description |
---|---|---|
$data | string | Datas to cache |
$id | string | Cache id |
$tags | array | Array of strings, the cache record will be tagged by each string entry |
$specificLifetime | int | If != false, set a specific lifetime for this cache record (null => infinite lifetime) |
Type | Description |
---|---|
boolean | True if no problem |


setDirectives(array $directives) : void
Set the frontend directives
Name | Type | Description |
---|---|---|
$directives | array | Assoc of directives |
Exception | Description |
---|---|
\Zend_Cache_Exception |


setOption(string $name, mixed $value) : void
Name | Type | Description |
---|---|---|
$name | string | |
$value | mixed |
Exception | Description |
---|---|
\Zend_Cache_Exception |


test(string $id) : mixed | false
Test if a cache is available or not (for the given id)
Name | Type | Description |
---|---|---|
$id | string | Cache id |
Type | Description |
---|---|
mixed | false | (a cache is not available) or "last modified" timestamp (int) of the available cache record |