要使用此后端,必须加载memcache扩展。

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (57)

我安装了memcached。这来自phpinfo():

但当你这样使用它时:

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

有什么想法吗?

提问于
用户回答回答于

PHP有两个具有混淆名称的memcached库:

n.memcache

memcache(注意d)

代码需要第一个。只要做一个简单的pecl uninstall memcached然后pecl install memcache,修改php.ini包含批准者.so,它应该可以工作。

用户回答回答于

对于安装的PHP库,看起来最简单的解决方案是使用不同的后端--如果Zend框架版本允许的话:

我想是退货Zend_Cache:工厂(“核心”,“Memcached”,$Frontenopts,$backendOpts);转化为“返回Zend”_Cache:工厂(“核心”、“Libmemcached”、“前端Opts”、“BackendOpts”);

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励