我无法让codeigniter与我的外部memcached服务器通话。我正在使用-vvv标志运行memcached,当通常通过php使用memcached时,它工作正常(谢谢你zerkms)。但是当我尝试通过codeigniter设置/获取值时,它甚至没有连接到删除服务器,但我根本没有任何错误。
memached.php配置文件
<?php
$config['memcached'] = array(
'server_1' => array(
'host' => 'xx.xx.xx.xx',
'port' => 11211,
'weight' => 1
)
);
?>
正在运行的代码:
$this->load->driver('cache', array('adapter' => 'memcached', 'backup' => 'file'));
$userid = '1';
$key = 'user_products_'.$userid;
$results = $this->cache->memcached->get($key);
if($results == NULL) {
$qry = $this->db->query("SELECT * FROM products WHERE user_id=$userid");
$results = $qry->result_array();
$this->cache->memcached->save($key,$results,'60');
}
我试过了两个:
$this->cache->get();
$this->cache->save();
和
$this->cache->memcached->get();
$this->cache->memcached->save();
在Memcached驱动程序文件中,在第51行,当我使用var_dump检查get请求的输出时
$data = $this->_memcached->get($id);
var_dump($data);
我得到:
bool(false)
答案 0 :(得分:0)
我认为这是Codeigniter中memcached驱动程序的一个问题。
我在Codeigniter论坛上发现了以下帖子。这个memcached库第一次完美地为我工作,绝对没有问题。它不是一个解决方案,因为我更喜欢使用内置的Codeigniter Cache库,但同时这提供了一个足够实用的解决方案。