当前位置:首页 > php > 正文内容

php中Memcache::get(): Server...failed with: Failed reading line from stream

phpmianshi5个月前 (04-29)php188

背景

最近sentry报告PHP的memcache客户端php-memcache经常出 现断连接的问题:

PHP Notice:  Memcache::get(): Server ………. (tcp 11211) failed with: Failed reading line from stream (0) with pecl-memcache 3.*

分析

这个问题由来已久,我们的解释是MemcacheDB的延迟受磁盘写入影响 (checkpoint时, memtrickle时)会有一点的浮动。虽然整体延迟不是很高,但是 相比于Memcached纯内存稍高。而PHP memcache宏观上认为是cache行为,会对延 迟稍高的连接扔掉(其认为延迟高就失去cache的意义)。

解决办法

使用andreiz的php-memcached:

http://pecl.php.net/package/memcached
http://github.com/andreiz/php-memcached/tree/master

php-memcached是brian的libmemcached库的php wrapper. libmemcached是一个 前途光明的memcache协议c/c++客户端库,未来对二进制版本的支持,另外极有可能包括MemcacheDB的扩展命令rget等的支持(已经联 系好作者提交patch)

我对php-memcache和php-memcached两个客户端作了简单的评估。分别set 1000 万条200字节的value,其中php-memcache表现得脆弱,连接频频断掉。而php- memcached依然保持坚挺,从未断过。


版权声明:本文由PHP面试资料网发布,如需转载请注明出处。
分享给朋友:

相关文章

PHP中self与static区别和联系

PHP官方也说过,大概意思是说self调用的就是本身代码片段这个类,static - PHP 5.3加进来的只得是当前这个类,有点像$this的意思,static调用的是从堆内存中提取出来,访问的是当...

Fiddler抓包设置及常见问题

Fiddler抓包设置及常见问题

Fiddler简介官网:https://www.telerik.com/fiddlerFiddler是比较好用的web代理调试工具之一,它能记录并检查所有客户端与服务端的HTTP/HTTPS请求,能够...

phpfpm中status状态说明详解

背景phpfpm跟nginx一样有个status状态监控页。可能通过status状态监控页了解phpfpm的运行状态,如并发数,总进程数等。启用php-fpm状态功能# vim /...

php-fpm进程数优化看这一篇就够了

php-fpm进程数优化看这一篇就够了

概念CGI:是 Web Server 与 Web Application 之间数据交换的一种协议。CGI(Common Gateway Interface)全称是“通用网关接口”,WEB 服务器与PH...

从0到1搭建基于swoole的websocket服务

源码安装wget  https://github.com/swoole/swoole-src/archive/v4.5.7.tar.gz tar -xzvf ...

php中Warning: Declaration of … should be compatible with …

背景今天sentry收到报警:Declaration of (类方法1) should be compatible with (类方法2); 详情如下:Declaration of ...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。