最近学习 session,设置 session 的底层驱动是 redis,于是用了 laravel 默认的 redis 设置:
'redis' => [
'client' => 'predis',
'default' => [
'host' => env('REDIS_HOST', '127.0.0.1'),
'password' => env('REDIS_PASSWORD', null),
'port' => env('REDIS_PORT', 6379),
'database' => 0,
],
],
连接后发现被坑了,错误信息是:
Error while reading line from the server. [tcp://127.0.0.1:6379]
但是我用 php 的 redis 扩展 phpredis 连接毫无问题,于是我在网上查,发现大家的建议是加一个配置:
'redis' => [
'client' => 'predis',
'default' => [
'host' => env('REDIS_HOST', '127.0.0.1'),
'password' => env('REDIS_PASSWORD', null),
'port' => env('REDIS_PORT', 6379),
'database' => 0,
'read_write_timeout' => 0,
],
],
然而发现并没有什么用。。。一度想要自定义 session 的驱动。。。
于是我只能跟着 predis 的代码一行一行的走,终于发现是这货:
'database' => 0,
Copy
由于我的 redis 加了代理 Twemproxy,而 predis 对这个配置默认执行 select 操作,导致了连接错误。
大家以后要注意,如果 redis 有代理的话,别忘了把这个配置删掉。
————————————————
原文作者:leoyang
转自链接:https://learnku.com/laravel/t/6774/meet-a-pit-of-laravel-redis-share
版权声明:著作权归作者所有。商业转载请联系作者获得授权,非商业转载请保留以上作者信息和原文链接。
有话要说