PHP使用phpredis链接redis错误

发布于 2022-09-04 05:29:55 字数 635 浏览 14 评论 0

如题, 项目中使用phpredis链接 redis,偶尔报如下错误:

PHP Fatal error:  Uncaught exception 'RedisException' with message 'Failed to AUTH connection' in [no active file]:0
Stack trace:
#0 {main}

  thrown in [no active file] on line 0```
  1. check过项目的配置信息正确,此错误信息为偶尔出现

  2. 项目中使用redis处理session

  3. githubissues中发现有人遇到类似的问题,但也没有给出现的原因和怎么解决,传送门github

各位在项目中有遇到类似的问题的嘛, 还是直接使用 predis这个扩展呢?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

梦冥 2022-09-11 05:29:55

纯粹吐槽,phpredis 这个扩展是越来越蛋疼了。。。。

不醒的梦 2022-09-11 05:29:55

看错误是授权相关的错误,检查一下是否是Redis有密码,如果是集群部署的话,是否环境不一致

$client = new Predis\Client(array(
    'scheme'   => 'tcp',
    'host'     => '127.0.0.1',
    'port'     => 6379,
    'database' => 15,
    'password' => '密码'
));
睫毛溺水了 2022-09-11 05:29:55

提示的鉴权失败么

短叹 2022-09-11 05:29:55

我也遇到这个报错了,使用 session.save_handler = redis 就报这个错,换成 files 就不会,

  • PHP 版本 7.1.16
  • phpredis 试过 4.0.1、3.1.6、3.1.5 等 3 个版本
  • Redis 版本 4.0.9

试过 tcpdump 抓包,strace 跟 php-fpm 进程,都没有看到有用的信息。现在准备降 Redis 的版本试试,楼上诸位解决了么?

╰沐子 2022-09-11 05:29:55

我也遇到过这个问题。
发生问题的原因是:我的redis超时时间设置的是10秒,当php程序运行时间大于redis超时时间时,session会话提交的时候redis已经断开连接了,就会报出这个错误。
我的解决方法是:

  1. 增加redis的超时时间;
  2. 用完session后,使用session_write_close()或session_commit()方法提前结束此次会话。
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文