刁钻的redis问题 exception 'RedisException' with message 'Redis server went away'

whengbbs

不好意思又来麻烦版主大人

因为业务需要,在onmessage下面的子进程当中需要用到redis,(自己加了一个类支持部分redis功能)加上gatewayworker也使用了redis
这次的情况是这样的,只有在mac osx系统下收到了标题当中的报错。
可以确认 redis连接 无问题 配置无问题 在centos下运行无问题。。。。
就是自己在osx下编译的环境中会出现这种错。。。。。
还特地把系统用的DRIVER_REDIS 改为DRIVER_FILES做了一下测试
结果程序中自定义的redis句柄就能正常工作了。。。。这个问题好刁钻,走遍google baidu,给出的答案均不是, 未能得其道。。。。
是不是workerman当中的redis调用和我的redis调用是不是在osx下有某种特别的冲突?

phpredis 2.2.7的模块 redisserver 3.0.5 osx 10.11.1

5423 3 0
3个回答

whengbbs

补充:出问题的是onmessage下面的方法,如果使用DRIVER_REDIS,仍然可以看到gatewayworker 创建的redis键,但是我自己的redis句柄就无法工作,报标题那个错误
反之,改为DRIVER_FILES后,我的redis句柄就能正常工作了

  • 暂无评论
walkor 打赏

可能是你主进程中直接初始化了redis连接导致的。

子进程中无法使用从主进程继承来的redis mysql等连接资源,会有类似Redis server went away错误。

可能是这个原因,但不确认。

最后建议升级到GatewayWorker2.0,GatewayWorker2.0框架自身已经不再依赖redis等外部存储了,稳定性大大增强,并且提供了很多新的api

  • 暂无评论
whengbbs

多谢 问题已经在升级gatewayworker2.0后彻底解决!

  • 暂无评论
年代过于久远,无法发表回答
×
🔝