redis :read error on connection

redis :read error on connection

最近做了一个多人竞拍的小功能  因为以前没做过 所以踩了很多坑
用的是 mysql + php + redis 实现的竞拍功能

这里先说一下踩得第二个坑
redis  的原因  真是欲哭无泪  解决完一个 还有一个

其实是先发现的这个 但是没办法复现 就丢上去了执行了
之后偶然把这个问题复现了
先说一下是什么问题吧 
php 捕获的异常提示是PHP Fatal error: Uncaught RedisException: read error on connection

很多人都说是 PHP-FPM的超时时间是1s钟,也就是说如果PHP程序执行超过1s钟就会中断,另外由于Redis是单线程的,
所以如果一个请求的时间太久就会造成Redis假死状态,接收不了其他请求,继而就会造成PHP程序连接报错。(这段话是我复制过来的)
说是设置php 超时时间   redis 超时时间  为-1就解决了
但没解释为什么  怎么就超时了  怎么验证超时时间可以解决

所以我才自己写的  不一定对  不一定能解决你的问题  但验证了我的问题  也解决了
redis keys * 
这个操作我现在是不能容忍的  这尼玛 什么都不知道你就查  太浪费时间了
就是这个操作 造成了 (PHP Fatal error: Uncaught RedisException: read error on connection)
我们服务器设置的默认超时时间10秒  但是这了命令的执行时间超过了10秒
服务器数据也比较多吧  没用的数据也挺多的 

当然 解决办法还是设置 redis 超时时间  但有些时候我们要弄清 为什么会出现这个问题  这个才是重要的

setOption(Redis::OPT_READ_TIMEOUT,-1);

用了这么久的redis,难道他是单线程的这个知识点都不知道吗(这是领导说我的,确实不知道 现在知道了)

debug sleep 20     //这句话能帮助你复现
你可以自己复现一下  来验证

https://blog.csdn.net/qq_35336004/article/details/80923425

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/112947.html原文链接:https://javaforall.net

(0)
上一篇 2021年10月27日 上午11:00
下一篇 2021年10月27日 下午12:00


相关推荐

  • oidc_使用Java EE和OIDC构建Java REST API

    oidc_使用Java EE和OIDC构建Java REST APIoidc 我喜欢编写身份验证和授权代码 从来没有 Java 开发人员 厌倦了一次又一次地建立相同的登录屏幕 尝试使用 OktaAPI 进行托管身份验证 授权和多因素身份验证 JavaEE 允许您使用 JAX RS 和 JPA 快速轻松地构建 JavaRESTAPI JavaEE 是保护伞标准规范 它描述了许多 Java 技术 包括 EJB JPA JAX RS 和许多其他技术 它最初旨在允许 J

    2026年3月26日
    2
  • IIS rewrite防盗链

    IIS rewrite防盗链针对下载地址IIS的虚拟主机的url规则[ISAPI_Rewrite]#3600=1hourCacheClockRate3600RepeatLimit32#Protecthttpd.iniandhttpd.parse.errorsfiles#fromaccessingthroughHTTPRewriteRule^/httpd(?:\.ini|\.parse\.erro…

    2022年7月23日
    11
  • [Unity3D]Unity3D游戏开发之ACT游戏三连击效果实现综述

    [Unity3D]Unity3D游戏开发之ACT游戏三连击效果实现综述

    2021年12月14日
    66
  • 状态模式state_解释器模式

    状态模式state_解释器模式状态模式 State动机模式定义实例结构要点总结笔记动机在软件构建过程中,某些对象的状态如果改变,其行为也会随之而发生变化,比如文档处于只读状态,其支持的行为和读写状态支持的行为就可能不同.如何在运行时根据对象的状态来透明地更改对象的行为?而不会为对象操作和状态转换之间引入紧耦合模式定义允许一个对象在其内部状态改变时改变它的行为.从而使对象看起来似乎修改了其行为.从而使对象看起来似乎修改了其行为.从而使对象看起来似乎修改了其行为.实例朴素根据状态来执行下一步enum NetworkStat

    2022年8月9日
    7
  • 超详细~Windows下PyCharm配置Anaconda环境教程

    超详细~Windows下PyCharm配置Anaconda环境教程目录首先来明确一下 Python PyCharm 和 Anaconda 的关系那么如何将 Anaconda 集成到 PyCharm 中呢 1 安装 Anaconda 2 在 PyCharm 导入 Anaconda 3 在 Anaconda 中安装新的 Python 包首先来明确一下 Python PyCharm 和 Anaconda 的关系 1 Python 是一种解释型 面向对象 动态数据类型的高级程序设计

    2026年3月27日
    2
  • CSS加JS实现网页返回顶部功能

    CSS加JS实现网页返回顶部功能最近在设计自己的博客,前端页面在内容很多的时候往下拖动会有滚动条。通常我们都需要一个返回顶部的功能来实现快速来到网页顶部。当然实现方式不止一种,这里我采用的最实用的一种。使用CSS+Jquery方式代码量相对较少,容易理解。实现原理1.我们需要再DOM中添加自己的DIV,里面包含一个a标签,a标签里面包含两个img标签用于存放返回顶部的图片。2.添加必要的CSS样式3.然后…

    2022年7月15日
    17

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号