I got memcached installed. This is from phpinfo():

But when using it like this:
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; } I get this error:
The memcache extension must be loaded for using this backend Any ideas?
PHP has two Memcached libraries with confusing names :
Your code needs the first one. Just do a simple pecl uninstall memcached and then pecl install memcache, modify your php.ini to include the appropiate .so and it should work.
for the PHP library that you have installed, it looks like the easiest solution would be to use a different backend - if your zend framework version allows it:
Zend_Cache_Backend_Libmemcached (http://doczf.mikaelkael.fr/1.11/en/zend.cache.backends.html)
i assume that return Zend_Cache::factory('Core', 'Memcached', $frontendOpts, $backendOpts); turns into return Zend_Cache::factory('Core', 'Libmemcached', $frontendOpts, $backendOpts);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With