首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Codeigniter memcached驱动程序:锁处理速度较慢

Codeigniter memcached驱动程序:锁处理速度较慢
EN

Stack Overflow用户
提问于 2018-03-17 00:49:10
回答 1查看 371关注 0票数 0

我在codeigniter上打开了memcached。它工作得很好,但我注意到脚本执行有一些延迟。我调试了Session_memcached_driver,发现它在第330-336行停留了几秒钟

代码语言:javascript
复制
    do
    {
        if ($this->_memcached->get($lock_key))
        {
            sleep(1);
            continue;
        }

        if ( ! $this->_memcached->set($lock_key, time(), 300))
        {
            log_message('error', 'Session: Error while trying to obtain lock for '.$this->_key_prefix.$session_id);
            return FALSE;
        }

        $this->_lock_key = $lock_key;
        break;
    }
    while (++$attempt < 30);

显然,它在等待发布,这需要几秒钟(5-7秒)。也许我没有关闭一些我应该关闭的东西,或者以错误的方式使用CI会话机制?PHP 7、Linux、CI 3.1.4

EN

回答 1

Stack Overflow用户

发布于 2018-10-30 22:47:53

我也有同样的问题。延迟是由touch()命令引起的。如果您查看驱动程序行109:

$this->_memcached->setOption(Memcached::OPT_BINARY_PROTOCOL,为真);

暂时将其注释掉,看看它是否解决了问题。如果是,则需要更新服务器上的libmemcached。升级后,重新启动web服务器。

我有libmemcached 1.0.16,升级到1.0.18,如果你不升级,但只要注释掉这一行,会话时间将不会延长用户活动,并将更快地到期-如配置文件所定义。

祝好运!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49325852

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档