今天在前端调用PHP的接口时,有报错信息为:
protocol error, got 'o' as reply type byte
另外此错误有几率会重现,并不是必现的。十分疑惑,遂百度一下,发现是redis的错误。

网上说是redis的连接问题,解决方案为:
在redis.conf中
1、将bind参数注释
2、protected-mode由yes改为no

改完后重启redis服务。
暂时未发现问题会复现。

另附参考链接:
1、
github的phpredis项目issue中该问题的提问:https://github.com/phpredis/phpredis/issues/52
此问题中怀疑是phpredis使用的是长连接,某种情况下共用一个socket导致出问题,还有就是不知道是不是fork()的原因,并建议fork时重连redis

2、
另一篇遇到此问题的讨论帖:这个是用Discuss出现的。
https://www.52pojie.cn/forum.php?mod=viewthread&tid=446251&archive=1&extra=page%3D1&page=5
其中有个跟帖回复为:
觉得可能是使用了某个应用,没操作好redis,你是不是用了某个DZ应用?还是说某个很消耗内存的应用在近期使用量剧增了?然后协议乱了取数据的时候超时了。觉得可能是使用了某个应用,没操作好redis,你是不是用了某个DZ应用?还是说某个很消耗内存的应用在近期使用量剧增了?然后协议乱了取数据的时候超时了。
推荐修复方案:
如果找不到其他原因,那就修改一下PHP的配置,把soket超时设置一下
default_socket_timeout
个人觉得是某个山炮的DZ应用对redis没有操作好

phpredis报错信息:protocol error, got 'o' as reply type byte解决方案的更多相关文章

  1. protocol error, got 'n' as reply type byte

    centos6.5上安装redis3.2版本,本地访问redis报错protocol error, got 'n' as reply type byte 解决办法 在redis配置文件redis.co ...

  2. protocol error, got 'n' as reply type byte + redis如何后台启动

    其它机子的PHP访问redis爆“protocol error, got 'n' as reply type byte ”错误 解决办法: 在redis配置文件redis.conf中注释掉bind配置 ...

  3. redis3.2装完后 其它机子访问爆protocol error, got 'n' as reply type byte

    服务器上装了reids3.2版本,配置文件中已将bind的选项注释掉, linux的iptables的redis端口也开放 其它机子的PHP访问redis爆“protocol error, got ' ...

  4. junit的Test不能使用,报错信息:Test is not an annotation type

    在使用junit的Test做测试时,注解@Test报错”Test is not an annotation type”,发现是因为测试类的类名命名为了Test,所以导致错误. 测试类类名不能直接命名为 ...

  5. TNS-12532: TNS:invalid argument,Oracle的报错信息太让人无语

    TNS-12532: TNS:invalid argument,Oracle的报错信息太让人无语 现象: Tnsping报错: [oracle@unicomGZ01 admin]$ ../../bin ...

  6. PHP安全编程:不要让不相关的人看到报错信息

    没有不会犯错的开发者,PHP的错误报告功 能可以协助你确认和定位这些错误,可以提供的这些错误的详细描述,但如果被恶意攻击者看到,这就不妙了.不能让大众看到报错信息,这一点很重要.做到这一 点很容易,只 ...

  7. PHP安全编程:不要让不相关的人看到报错信息(转)

    没有不会犯错的开发者,PHP的错误报告功能可以协助你确认和定位这些错误,可以提供的这些错误的详细描述,但如果被恶意攻击者看到,这就不妙了.不能让大众看到报错信息,这一点很重要.做到这一点很容易,只要关 ...

  8. JAVA_用_JCO连接_SAP,实现调用SAP_的_RFC_函数(整理)(附一篇看起来比较全面的说明)(JCO报错信息)

    // 获取RFC返回的字段值 11 JCoParameterList exportParam = function.getExportParameterList(); 12 String exPara ...

  9. Eclipse之报错信息及其解决方案

    一.有很多人都喜欢开发js的时候用aptana,因此在eclipse中集成aptana插件是必须的,可是,在用link方式在eclipse中安装好aptana后,启动时会报如下错误 An intern ...

随机推荐

  1. Sublime Text3安装配置

    Sublime Text3的所有package都可在如下网站检索 https://packagecontrol.io/browse 以下是我的插件列表 CoolFormat 一款C\C++\C#\CS ...

  2. 记boost协程切换bug发现和分析

    在分析了各大开源协程库实现后,最终选择参考boost.context的汇编实现,来写tbox的切换内核. 在这过程中,我对boost各个架构平台下的context切换,都进行了分析和测试. 在maco ...

  3. tensorflow 之Dataset数据集之批量数据

    ###生成批次数据 import tensorflow as tf '''reapt()生成重复数据集 batch()将数据集按批次组合''' file_name = ['img1','img2',' ...

  4. 身份证验证的js

    function isIdCardNo(num) { num = num.toUpperCase(); //身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能 ...

  5. JSP基础--javaBean

    JavaBean 1 JavaBean概述 1.1 什么是JavaBean JavaBean是一种规范,也就是对类的要求.它要求Java类的成员变量提供getter/setter方法,这样的成员变量被 ...

  6. 线程休眠只会用 Thread.sleep?来,教你新姿势!

    线程休眠是 Java 开发经常会用到的一个手段,就是让当前线程睡一会儿,睡醒之后再继续运行. 咱大多数程序员,多线程虽然学得不好,但线程休眠,无人不知,无人不晓,也都会用,不就是用 Thread.sl ...

  7. kmp(前中后最长相同长度)

    http://acm.hdu.edu.cn/showproblem.php?pid=4763 Theme Section Time Limit: 2000/1000 MS (Java/Others)  ...

  8. Codeforces - 1088B - Ehab and subtraction - 堆

    https://codeforc.es/contest/1088/problem/B 模拟即可. #include<bits/stdc++.h> using namespace std; ...

  9. 关于行内元素,内联元素before和after的大小设置问题

    :before /:after伪元素默认是一个行内元素,所以这个元素设置width/height是无效的

  10. 2019-8-31-C#-条件编译

    title author date CreateTime categories C# 条件编译 lindexi 2019-08-31 16:55:58 +0800 2019-07-18 15:27:1 ...