使用 Lumen 中 predis 报错 `AUTH` failed

今天用lumen写发送短信验证码的使用,打算将验证码存入redis,laravel支持predis,就简单的配置了一下,

 'redis' => [

        'cluster' => false,

        'default' => [
            'host'     => env('REDIS_HOST', '127.0.0.1'),
            'port'     => env('REDIS_PORT', 6379),
            'database' => env('REDIS_DATABASE', 0),
            'password' => env('REDIS_PASSWORD', null),
        ],
    ]

完全按照lumen本身的配置文件,结果报错

`AUTH` failed: ERR Client sent AUTH, but no password is set [tcp://127.0.0.1:6379]

我本地redis根本就没有密码好不好,不管怎么试就是不好用

找了下google 把配置文件改成了

'redis' => [

    'cluster' => false,

    'default' => [
        'host'     => env('REDIS_HOST', '127.0.0.1'),
        'port'     => env('REDIS_PORT', 6379),
        'database' => env('REDIS_DATABASE', 0),
        'password' => env('REDIS_PASSWORD', null),
        'parameters'=>[
            'password'=>env('REDIS_PASSWORD', null)
        ]
    ],

]

然后就可以了,原因是 predis的最新版本与 laravel没有很好的兼容,才导致的这个原因

本作品采用《CC 协议》,转载必须注明作者和本文链接
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
讨论数量: 3

我踩过一个坑,类似问题,只不过原因是env和getenv一个返回Null一个返回""导致的

3年前 评论

@NicolaBonelli 我一直以为是我本地redis设置了密码,然而并不是

3年前 评论

我把.env的REDIS_PASSWORD=null就可以了

1年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!