在使用Phalcon时遇到的memcached问题
在尝试将Memcached与Phalcon结合使用时,我遇到了问题。
由于重视速度,选择了Phalcon,所以在解决以前使用文件缓存的部分时,遇到了使用Memcached的困境。
我想使用memcached而不是memcache。
$FrontCache = new Phalcon\Cache\Frontend\Data(array(
"lifetime" => 1728000
));
$cache = new \Phalcon\Cache\Backend\Memcache($FrontCache, array(
'host' => 'localhost',
'port' => 11211,
'persistent' => false
));
$cache = $cache->get('my-cache');
if( NULL === $cache ){
$data = array('a','b','c');
$cache->save('my-cache',$data);
}
在此进行操作时,将显示以下错误:
无法将数据存储在memcached中,错误代码:47
通过谷歌搜索,找到了这篇文章…
在Phalcon中,无法永远使用Memcache类。
然而,当我再次查看Phalcon的手册时,我却认为这不可能是那样的。
Phalcon文档中,有关在后端使用memcached的方法有详细介绍。
总的来说,就是推荐使用Libmemcached而不是Memcache。
$cache = new \Phalcon\Cache\Backend\Libmemcached($FrontCache, array(
'host' => 'localhost',
'port' => 11211,
'persistent' => false
));
通过这样做解决问题。
由于使用phalcon-devtools进行类补全,所以发现没有安装Memcached时感到惊讶,但并无大碍。然而,我意识到缺乏命名规范会导致陷入这样简单的问题中。
我再次意识到,必须对核心程序非常注意,通过查看他人的代码加以改进。