这算是ci的一个bug么?
ci version 2.0.3使用默认的memcache配置,代码有错误。在目录system/libraries/Cache/Cache_memcached.php
该文件,_setup_memcached函数,第160到173行,如下:
if ( ! array_key_exists('hostname', $cache_server))
{
$cache_server['hostname'] = $this->_default_options['default_host'];
}
if ( ! array_key_exists('port', $cache_server))
{
$cache_server['port'] = $this->_default_options['default_port'];
}
if ( ! array_key_exists('weight', $cache_server))
{
$cache_server['weight'] = $this->_default_options['default_weight'];
}
感觉这里的代码$this->_default_options有问题,应该改成如下:
if ( ! array_key_exists('hostname', $cache_server))
{
$cache_server['hostname'] = $cache_server['default_host'];
}
if ( ! array_key_exists('port', $cache_server))
{
$cache_server['port'] = $cache_server['default_port'];
}
if ( ! array_key_exists('weight', $cache_server))
{
$cache_server['weight'] = $cache_server['default_weight'];
}
请大家讨论。。。
再问大家一个问题。在判断是否支持memcache的函数is_supported里,是这样判断
public function is_supported() {
if ( ! extension_loaded('memcached'))
{
log_message('error', 'The Memcached Extension must be loaded to use Memcached Cache.');
return FALSE;
}
$this->_setup_memcached();
return TRUE;
}
我还看到一个memcached函数库
其实有2个memcache函数库,名字也差不多
一个是memcache
另一个是memcached(这个也就是ci使用的)
两个函数库应该说功能应该也差不多。。。大家一般用哪个?(两个库在php文档中都有。。。看来都还可以。。。)
一开始我装了另一个库。。。怎么老说不支持。大家用的时候也要看仔细了。。。
memcache是PHP默认发行包包含的PECL链接mc的客户端
memcached是09年开发出来的(晚于没有d的)客户端,需要libevent支持
带d的客户端没有win版,要自己编译,而不带d的可以找到很多编译好的dll或so
据说带d的客户端速度快,我没有测试过,不清楚 visvoy 发表于 2011-9-21 00:33 static/image/common/back.gif
memcache是PHP默认发行包包含的PECL链接mc的客户端
memcached是09年开发出来的(晚于没有d的)客户端,需要 ...
ok,了解。不过功能上来说,看php手册,带d的客户端功能比较多。。。
页:
[1]