我已安装memcached。这是phpinfo()函数:必须加载memcache扩展才能使用此后端
但是,使用像这样的时候:
private static function getZendCacheMemcachedObject()
{
$frontendOpts = array(
'caching' => true,
'lifetime' => 3600,
'automatic_serialization' => true
);
$backendOpts = array(
'servers' =>array(
array(
'host' => 'localhost',
'port' => 11211,
'weight' => 1
)
),
'compression' => false
);
return Zend_Cache::factory('Core', 'Memcached', $frontendOpts, $backendOpts);
}
public function foo($id)
{
$cache = self::getZendCacheMemcachedObject();
$cacheKey = 'foo_'.$id;
$xml = $cache->load($cacheKey);
if (false === $xml) {
$xml = $this->httpClient->foo();
$cache->save($xml, $cacheKey);
}
return $xml;
}
我得到这个错误:
The memcache extension must be loaded for using this backend
任何想法?
FYI ZF输出一个错误,如果'extension_loaded('内存缓存')'返回false,所以很奇怪是继续进行配置。 – 2012-03-20 17:09:23
好吧,问题似乎是Zend_Cache_Backend_Memcached加载memcache库而不是memcached。为什么当它使用memcache时称为mecached?跆拳道。 – 2012-03-20 17:20:03
这可能有所帮助:http://serverfault.com/questions/63383/memcache-vs-memcached - 看着我的phpinfo,它肯定是'memcache',我已经安装了,而你的名单'memcached' – 2012-03-20 17:24:09