解决PHP连接Redis报read error on connection错误
背景
项目由于并发很高,所以将之前连接redis使用短连接改成了长连接,结果导致出现了抛出了read error on connection
出现原因
php有一个配置项default_socket_timeout表示一个socket连接的超时时间,默认是60s,而phpredis这个扩展的底层连接redis是使用的socket,所以当一个连接在60秒内没有被使用的时候,下次连接就会抛出这个异常。
解决方案
方案1 修改php.ini(不推荐)
在php.ini中设置default_socket_timeout = -1,然后重启php-fpm
方案2 程序中设置
使用ini_set函数
ini_set('default_socket_timeout', -1); // 不超时
方案3 使用redis的option
在连接redis时setOption
$this->redis->setOption(Redis::OPT_READ_TIMEOUT, -1);
注意设置没有超时时间都要设置成-1 而不是0
参考文章:
https://github.com/phpredis/phpredis/pull/260
解决PHP连接Redis报read error on connection错误相关推荐
- win7设置ipsec_解决win7连接IPsec报错789和809错误
解决win-7连接IPsec报错789和809错误 萌新一枚,大神请飘过~~~ 最近遇到一个很沙雕的问题,win7连接IPsec一直报错789,百度方法解决掉后又报错809,809解决掉后继续报789 ...
- python redis模块connectionerror_PHP程序连接Redis报read error on connection问题
线上PHP程序动不动就报PHP Fatal error: Uncaught RedisException: read error on connection错误,就是连接Redis在那么1秒钟有问题, ...
- Navicat远程连接服务器报错ERROR 2003 (HY000) Can‘t connect to MySQL server on ‘IP‘ (10061)
1背景 Navicat远程连接服务器报错ERROR 2003 (HY000) Can't connect to MySQL server on 'IP' (10061) 但是6月份左右的时间还是可以正 ...
- linux下搭建redis并解决无法连接redis的问题
linux下搭建redis并解决无法连接redis的问题 参考文章: (1)linux下搭建redis并解决无法连接redis的问题 (2)https://www.cnblogs.com/bestmy ...
- python连接数据库mysql失败_解决python连接mysql报错问题
解决python连接mysql报错问题 最近跑python脚本时遇到一个问题,当sql语句中有中文时,执行python脚本报以下错误: Traceback (most recent call last ...
- 解决hexo d命令报错 ERROR Deployer not found: git
解决hexo d命令报错 ERROR Deployer not found: git 问题乍现 探索过程 柳暗花明 完美句号 问题乍现 本来想开开心心搭一个属于自己的博客网站,于是按照网上的教程搭建h ...
- 逐鹿工具显示服务器错误连接不上怎么解决,win7系统安装逐鹿工具箱提示“error launching installer”错误的解决方法...
win7系统使用久了,好多网友反馈说win7系统安装逐鹿工具箱提示"error launching installer"错误的问题,非常不方便.有什么办法可以永久解决win7系统安 ...
- org.springframework.data.redis.RedisSystemException: Error in execution; nes遇到springboot连接Redis报错
org.springframework.data.redis.RedisSystemException: Error in execution; nested exception is io.lett ...
- redis报protocol error的真正原凶
前段时间写了个文章详细描述了在什么场景下会出现redis的protocol error错误,但是手抽筋, 不小心点错给删了,而且还原不了,没办法了,只能重写一下,但是没上次那么详细了,如果不太明白就看 ...
最新文章
- 面试:TCP协议经典十五连问!
- Ext JS 6正式版的GPL版本下载地址
- 用js获取当前地理位置的经纬度
- AFN post的数据编码格式问题
- VTK:可视化之DisplayQuadricSurfaces
- position的高级使用
- git比较当前工作区和之前提交的内容差异
- C语言实现简单的内存管理机制
- 导入数据库出现html lang='zh' dir='ltr' class='ie ie7错误代码解决方法
- python怎么用input输入列表_Python - 根据列表内容验证用户输入的最佳方法是什么?...
- 突破拐点:企业成长的S曲线
- matlab对信号加噪代码,Matlab给信号加噪声
- 固态硬盘颗粒有哪些?固态硬盘SLC、MLC、TLC、QLC有什么不同?
- 健脾和胃,养生食疗——山药枸杞鲫鱼汤了解一下
- 论文代码复现 | 无人机与卡车联合配送(Python+Gurobi)(The flying sidekick traveling salesman problem)
- 【Javafx】关于属性绑定需要在动画设置之后
- verilog语言实现全加器
- 被各种手机浏览器的推荐烦死,推荐一种干净、有效的浏览器操作
- 架设网站前都需要准备些什么
- k8s主从自动切换mysql_K8S与Ceph RBD集成-多主与主从数据库示例