python redis模块connectionerror_PHP程序连接Redis报read error on connection问题
线上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问题相关推荐
- Redis 2.8.18 安装报错 error: jemalloc/jemalloc.h: No s
2019独角兽企业重金招聘Python工程师标准>>> 本文为大家讲解的是Redis 2.8.18 安装报错 error: jemalloc/jemalloc.h: No such ...
- 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 ...
- python安装redis模块_安装redis及python redis模块
第一部分:安装redis mkdir /usr/local/redis cd /usr/local/src wget http://download.redis.io/releases/redis-2 ...
- 解决PHP连接Redis报read error on connection错误
背景 项目由于并发很高,所以将之前连接redis使用短连接改成了长连接,结果导致出现了抛出了read error on connection 出现原因 php有一个配置项default_socket_ ...
- 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 ...
- Redis 2.8.18 安装报错 error: jemalloc/jemalloc.h: No such file or directory解决方法
http://www.phperz.com/article/14/1219/42002.html --------------------------------------------------
- 对于解决python安装第三方包时候,报错 error: Unable to find vcvarsall.bat的终极秘诀
对于很多python玩家来说,难免安装一些第三方的库,但是,在安装过程中,如果遇到了 error: Unable to find vcvarsall.bat.怎么办呢?网上答案千千万,楼主亲测,管用的 ...
- openresty开发系列26--openresty中使用redis模块
openresty开发系列26--openresty中使用redis模块 在一些高并发的场景中,我们常常会用到缓存技术,现在我们常用的分布式缓存redis是最知名的, 操作redis,我们需要引入re ...
- 【Redis】CentOS7下redis的安装+supervisor管理+允许远程访问+测试部署效果
一.redis的安装 第一步:下载redis安装包 wget http://download.redis.io/releases/redis-4.0.6.tar.gz 第二步:解压压缩包 tar -z ...
最新文章
- css字体相关样式的处理
- WMI入门(三):我需要的类在哪里?
- mysql len hex asc_线上频出MySQL死锁问题!分享一下自己教科书般的排查和分析过程!...
- 跟JBPM学设计模式之适配器模式
- D2 日报 2019年4月17日
- Android 实现选中与非选中样式效果
- 一些常用且实用的原生 JavaScript函数[转]
- 【04】Effective Java - 类和接口
- linux vim打开乱码,linux下解决vim打开文件乱码现象
- 用python画的基本知识_Opencv-python画图基础知识
- 体重测试java算法代码_标准体重计算示例代码
- 佳能80d有人脸识别吗_2020单反/微单相机推荐,单反和微单(无反)选购攻略,佳能、尼康、索尼、富士、松下相机...
- java判断输入值是否在数组_java判断特定值是否在数组中的方法
- 2018-2019-2 20175215 实验五《网络编程与安全》实验报告
- 机器学习竞赛(代码)
- 拉式工序不允许倒冲财务仓
- opencv 0x00007FF986D04ED9 处(位于 ConsoleApplication2.exe 中)有未经处理的异常: Microsoft C++ 异常: cv::Exception
- java聊天软件_java实现简单聊天软件
- 软件测试车载项目,车载娱乐系统(测试模式)
- 改了计算机名字后重启断网了,电脑断网重启就好了是什么回事
热门文章
- LAMP介绍,Apache安装细节过程
- python telnetlib 协商_Python telnetlib:令人惊讶的问题
- php loop 语法,Loop - SegmentFault 思否
- 问题 D: 巧求和(思维)
- Flink Forward Asia 2021 正式启动!议题火热征集中!
- 秒懂云通信:选云通信到底哪家强?
- php mysql 字段备注_MySQL下读取 表/字段 的说明备注信息
- Spring常见面试题(13个面试题,回答超详细)
- synchronized【Java】中使用的demo
- 常见Java面试题之解释内存中的栈、堆和静态区用法