背景

项目由于并发很高,所以将之前连接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错误相关推荐

  1. win7设置ipsec_解决win7连接IPsec报错789和809错误

    解决win-7连接IPsec报错789和809错误 萌新一枚,大神请飘过~~~ 最近遇到一个很沙雕的问题,win7连接IPsec一直报错789,百度方法解决掉后又报错809,809解决掉后继续报789 ...

  2. python redis模块connectionerror_PHP程序连接Redis报read error on connection问题

    线上PHP程序动不动就报PHP Fatal error: Uncaught RedisException: read error on connection错误,就是连接Redis在那么1秒钟有问题, ...

  3. 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月份左右的时间还是可以正 ...

  4. linux下搭建redis并解决无法连接redis的问题

    linux下搭建redis并解决无法连接redis的问题 参考文章: (1)linux下搭建redis并解决无法连接redis的问题 (2)https://www.cnblogs.com/bestmy ...

  5. python连接数据库mysql失败_解决python连接mysql报错问题

    解决python连接mysql报错问题 最近跑python脚本时遇到一个问题,当sql语句中有中文时,执行python脚本报以下错误: Traceback (most recent call last ...

  6. 解决hexo d命令报错 ERROR Deployer not found: git

    解决hexo d命令报错 ERROR Deployer not found: git 问题乍现 探索过程 柳暗花明 完美句号 问题乍现 本来想开开心心搭一个属于自己的博客网站,于是按照网上的教程搭建h ...

  7. 逐鹿工具显示服务器错误连接不上怎么解决,win7系统安装逐鹿工具箱提示“error launching installer”错误的解决方法...

    win7系统使用久了,好多网友反馈说win7系统安装逐鹿工具箱提示"error launching installer"错误的问题,非常不方便.有什么办法可以永久解决win7系统安 ...

  8. org.springframework.data.redis.RedisSystemException: Error in execution; nes遇到springboot连接Redis报错

    org.springframework.data.redis.RedisSystemException: Error in execution; nested exception is io.lett ...

  9. redis报protocol error的真正原凶

    前段时间写了个文章详细描述了在什么场景下会出现redis的protocol error错误,但是手抽筋, 不小心点错给删了,而且还原不了,没办法了,只能重写一下,但是没上次那么详细了,如果不太明白就看 ...

最新文章

  1. 面试:TCP协议经典十五连问!
  2. Ext JS 6正式版的GPL版本下载地址
  3. 用js获取当前地理位置的经纬度
  4. AFN post的数据编码格式问题
  5. VTK:可视化之DisplayQuadricSurfaces
  6. position的高级使用
  7. git比较当前工作区和之前提交的内容差异
  8. C语言实现简单的内存管理机制
  9. 导入数据库出现html lang='zh' dir='ltr' class='ie ie7错误代码解决方法
  10. python怎么用input输入列表_Python - 根据列表内容验证用户输入的最佳方法是什么?...
  11. 突破拐点:企业成长的S曲线
  12. matlab对信号加噪代码,Matlab给信号加噪声
  13. 固态硬盘颗粒有哪些?固态硬盘SLC、MLC、TLC、QLC有什么不同?
  14. 健脾和胃,养生食疗——山药枸杞鲫鱼汤了解一下
  15. 论文代码复现 | 无人机与卡车联合配送(Python+Gurobi)(The flying sidekick traveling salesman problem)
  16. 【Javafx】关于属性绑定需要在动画设置之后
  17. verilog语言实现全加器
  18. 被各种手机浏览器的推荐烦死,推荐一种干净、有效的浏览器操作
  19. 架设网站前都需要准备些什么
  20. k8s主从自动切换mysql_K8S与Ceph RBD集成-多主与主从数据库示例

热门文章

  1. c语言 最小值算法,最常用的c语言算法
  2. 用企业微信如何做私域运营?
  3. 使用Windbg定位内存泄露
  4. IoT技术选型及模型设计的思考
  5. 计算机,编码,文本阅读器 一
  6. Iiscnfg.vbs IIS 配置脚本的使用
  7. 局域网监控软件帮助新入伍战士改善网络行为
  8. 第十四届全国大学生数学竞赛决赛(非数类)游记+答案解析
  9. 2023年“华数杯”国际大学生数学建模竞赛思路
  10. java版我的世界有溺尸_我的世界溺尸怎么找