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

PHP程序—>twemproxy代理—>Redis实例(5个节点)

PHP-FPM的超时时间是1s钟,也就是说如果PHP程序执行超过1s钟就会中断,另外由于Redis是单线程的,所以如果一个请求的时间太久就会造成Redis假死状态,接收不了其他请求,继而就会造成PHP程序连接报错。

首先接收到错误日志是在ELK上面,如下图:

看一下报错的时间和报错数量,报错的数据有3000多个,而报错时间都在14:41分。

然后看了twemproxy的日志。

可以看出执行时间都是1s多,肯定是不正常的,正常情况下一个Redis Get请求大概在20ms左右。同时可以看出twemproxy报错的后端服务器都是同一个(一共有5个后端)。

然后去172.18.129.135:6546这个实例上面查看慢日志。

127.0.0.1:6546> SLOWLOG get 1

1) 1) (integer) 50

2) (integer) 1470724891 #执行时间戳,转换为正常时间为2016/8/9 14:41:31;

3) (integer) 1761020 #执行时间,微秒;

4) 1) "ZRANGE"

2) "summer_user_rank"

3) "0"

4) "-1"

5) "WITHSCORES"

1

2

3

4

5

6

7

8

9

127.0.0.1:6546>SLOWLOGget1

1)1)(integer)50

2)(integer)1470724891#执行时间戳,转换为正常时间为2016/8/9 14:41:31;

3)(integer)1761020#执行时间,微秒;

4)1)"ZRANGE"

2)"summer_user_rank"

3)"0"

4)"-1"

5)"WITHSCORES"

看这条慢日志的时间刚好与ELK日志中的报错时间相同,同时执行时间为1.7秒。所以接下来就是找研发确定这个Key,改进问题。

如果您觉得本站对你有帮助,那么可以支付宝扫码捐助以帮助本站更好地发展,在此谢过。

python redis模块connectionerror_PHP程序连接Redis报read error on connection问题相关推荐

  1. Redis 2.8.18 安装报错 error: jemalloc/jemalloc.h: No s

    2019独角兽企业重金招聘Python工程师标准>>> 本文为大家讲解的是Redis 2.8.18 安装报错 error: jemalloc/jemalloc.h: No such ...

  2. python下载第三方库的时候报错ERROR: Command errored out with exit status 1: python setup.py egg_info Check the

    python下载第三方库的时候报错ERROR: Command errored out with exit status 1: python setup.py egg_info Check the l ...

  3. python安装redis模块_安装redis及python redis模块

    第一部分:安装redis mkdir /usr/local/redis cd /usr/local/src wget http://download.redis.io/releases/redis-2 ...

  4. 解决PHP连接Redis报read error on connection错误

    背景 项目由于并发很高,所以将之前连接redis使用短连接改成了长连接,结果导致出现了抛出了read error on connection 出现原因 php有一个配置项default_socket_ ...

  5. ubuntu18.04安装python的mysqlclient==1.4.6报错ERROR Command errored out with exit status 1python setup

    安装python的mysqlclient==1.4.6报错 环境: ubuntu18.04 python 3.7.2 Django 2.2 想要使用Django来操作MySQL,报错: LookupE ...

  6. Redis 2.8.18 安装报错 error: jemalloc/jemalloc.h: No such file or directory解决方法

    http://www.phperz.com/article/14/1219/42002.html --------------------------------------------------

  7. 对于解决python安装第三方包时候,报错 error: Unable to find vcvarsall.bat的终极秘诀

    对于很多python玩家来说,难免安装一些第三方的库,但是,在安装过程中,如果遇到了 error: Unable to find vcvarsall.bat.怎么办呢?网上答案千千万,楼主亲测,管用的 ...

  8. openresty开发系列26--openresty中使用redis模块

    openresty开发系列26--openresty中使用redis模块 在一些高并发的场景中,我们常常会用到缓存技术,现在我们常用的分布式缓存redis是最知名的, 操作redis,我们需要引入re ...

  9. 【Redis】CentOS7下redis的安装+supervisor管理+允许远程访问+测试部署效果

    一.redis的安装 第一步:下载redis安装包 wget http://download.redis.io/releases/redis-4.0.6.tar.gz 第二步:解压压缩包 tar -z ...

最新文章

  1. css字体相关样式的处理
  2. WMI入门(三):我需要的类在哪里?
  3. mysql len hex asc_线上频出MySQL死锁问题!分享一下自己教科书般的排查和分析过程!...
  4. 跟JBPM学设计模式之适配器模式
  5. D2 日报 2019年4月17日
  6. Android 实现选中与非选中样式效果
  7. 一些常用且实用的原生 JavaScript函数[转]
  8. 【04】Effective Java - 类和接口
  9. linux vim打开乱码,linux下解决vim打开文件乱码现象
  10. 用python画的基本知识_Opencv-python画图基础知识
  11. 体重测试java算法代码_标准体重计算示例代码
  12. 佳能80d有人脸识别吗_2020单反/微单相机推荐,单反和微单(无反)选购攻略,佳能、尼康、索尼、富士、松下相机...
  13. java判断输入值是否在数组_java判断特定值是否在数组中的方法
  14. 2018-2019-2 20175215 实验五《网络编程与安全》实验报告
  15. 机器学习竞赛(代码)
  16. 拉式工序不允许倒冲财务仓
  17. opencv 0x00007FF986D04ED9 处(位于 ConsoleApplication2.exe 中)有未经处理的异常: Microsoft C++ 异常: cv::Exception
  18. java聊天软件_java实现简单聊天软件
  19. 软件测试车载项目,车载娱乐系统(测试模式)
  20. 改了计算机名字后重启断网了,电脑断网重启就好了是什么回事

热门文章

  1. LAMP介绍,Apache安装细节过程
  2. python telnetlib 协商_Python telnetlib:令人惊讶的问题
  3. php loop 语法,Loop - SegmentFault 思否
  4. 问题 D: 巧求和(思维)
  5. Flink Forward Asia 2021 正式启动!议题火热征集中!
  6. 秒懂云通信:选云通信到底哪家强?
  7. php mysql 字段备注_MySQL下读取 表/字段 的说明备注信息
  8. Spring常见面试题(13个面试题,回答超详细)
  9. synchronized【Java】中使用的demo
  10. 常见Java面试题之解释内存中的栈、堆和静态区用法