Deprecate MemcacheEngine and update defaults for Memcached

People should switch to Memcached instead. The underlying extension is
better maintained and provides improved features and performance.

Collapse the persistent and persistentId settings, while also making
non-persistent connections the default. Persistent connections should be
an opt-in feature as having them enabled by default could go very wrong
on shared hosting environments.
This commit is contained in:
mark_story 2013-08-31 13:20:41 -04:00
parent 9e8c4ad285
commit 9b0e26cc21
4 changed files with 13 additions and 10 deletions

View file

@ -309,18 +309,20 @@
* 'password' => 'password', //plaintext password (xcache.admin.pass)
* ));
*
* Memcache (http://www.danga.com/memcached/)
* Memcached (http://www.danga.com/memcached/)
*
* Uses the memcached extension. See http://php.net/memcached
*
* Cache::config('default', array(
* 'engine' => 'Memcache', //[required]
* 'engine' => 'Memcached', //[required]
* 'duration' => 3600, //[optional]
* 'probability' => 100, //[optional]
* 'prefix' => Inflector::slug(APP_DIR) . '_', //[optional] prefix every cache file with this string
* 'servers' => array(
* '127.0.0.1:11211' // localhost, default port 11211
* ), //[optional]
* 'persistent' => true, // [optional] set this to false for non-persistent connections
* 'compress' => false, // [optional] compress data in Memcache (slower, but uses less memory)
* 'persistent' => 'my_connection', // [optional] The name of the persistent connection.
* 'compress' => false, // [optional] compress data in Memcached (slower, but uses less memory)
* ));
*
* Wincache (http://php.net/wincache)

View file

@ -24,7 +24,8 @@
* control you have over expire times far in the future. See MemcacheEngine::write() for
* more information.
*
* @package Cake.Cache.Engine
* @package Cake.Cache.Engine
* @deprecated You should use the Memcached adapter instead.
*/
class MemcacheEngine extends CacheEngine {

View file

@ -46,6 +46,8 @@ class MemcachedEngine extends CacheEngine {
* - servers = string or array of memcached servers, default => 127.0.0.1. If an
* array MemcacheEngine will use them as a pool.
* - compress = boolean, default => false
* - persistent = string The name of the persistent connection. All configurations using
* the same persistent value will share a single underlying connection.
*
* @var array
*/
@ -72,8 +74,7 @@ class MemcachedEngine extends CacheEngine {
'engine' => 'Memcached',
'servers' => array('127.0.0.1'),
'compress' => false,
'persistent' => true,
'persistentId' => 'mc',
'persistent' => false,
'login' => null,
'password' => null,
);
@ -87,7 +88,7 @@ class MemcachedEngine extends CacheEngine {
return true;
}
$this->_Memcached = new Memcached($this->settings['persistent'] ? $this->settings['persistentId'] : null);
$this->_Memcached = new Memcached($this->settings['persistent'] ? (string)$this->settings['persistent'] : null);
$this->_setOptions();
if (count($this->_Memcached->getServerList())) {

View file

@ -97,8 +97,7 @@ class MemcachedEngineTest extends CakeTestCase {
'duration' => 3600,
'probability' => 100,
'servers' => array('127.0.0.1'),
'persistent' => true,
'persistentId' => 'mc',
'persistent' => false,
'compress' => false,
'engine' => 'Memcached',
'login' => null,