php workerman redis mysql 连接断开问题

时隔半年左右,之前使用uniapp 做的一个聊天应用,刚好最近有客户需要,所以重新拿出来整理一下,一开始使用的是:thinkphp workerman mysql 作为后端,uniapp作为前端。

一开始也没什么问题,但是偶尔会出现:SQLSTATE[HY000]: General error: 2006 MySQL server has gone away

也就是mysql偶尔会出现断开的问题,其实也正常,聊天也算是有并发存在的,并且反馈的速度也需要大概1s左右(小于1s),感觉不完美,于是干脆使用redis。

由于本地使用了集成环境 phpstudy 8.0 里面已经有redis3.0 版,而且我本地也安装了,于是直接修改为redis,workerman 的接收消息基本上是零延迟了。

于是继续测试,测试期间中间离开了一会,回来发现聊天虽然是正常的,但是redis记录聊天内容却出现了:Redis::hLen(): send of 35 bytes failed with errno=10054;即错误码10054一查错误原因:那就是redis断开了连接,于是我就想着怎么解决redis断开重连的问题,可是呢?无论怎么搞都不可以,总会出现断开的情况,然后各种百度,最终发现了一篇文章的解决方案:redis连接处于空闲数小时被自动断开   根据文章最后github提供的原文地址:https://github.com/andymccurdy/redis-py/issues/1186  发现问题:

就是说,redis的版本要大于3.3.x之后的版本,当redis 连接断开时,会自动进行重连,保证redis 不会断开,所以只需要更新redis的版本既可以,因为phpstudy 8.0 只有3.0 所以需要重新安装一个redis即可 ,window 版本下载地址: Releases · tporadowski/redis · GitHub  

这一次我就算半个小时之后,进行聊天redis也再没有出现断开的情况。

记录与2022.03.28

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值