我最近根据Laravel主网站上的迁移指南将Laravel更新为5.2。
然而,新的predis驱动程序似乎不支持我的Redis服务器;我使用的是Ms Azure内置的Redis Cache,所以我无法访问Redis本身的配置,它们只提供SSl/非SSl-端口、ApiKey和URL。
特别是,无论何时运行
php artisan queue:listen
我得到以下错误:
[Predis'Response'ServerException]
NOAUTH Authentication required.
如何解决这个问题?
感谢
在我的测试中,只有当redis passowrd为空或错误时,才会发生这种情况,这将使您的应用程序无法从Azure上的redis服务器进行身份验证。
请仔细检查您在.env
文件中设置的redis信息。应该与类似
REDIS_HOST=<your_redis_server_name>.redis.cache.windows.net
REDIS_PASSWORD=<your_reids_base64_encrypted_key_should_end_with_"=">
REDIS_PORT=6379
同时,您可以创建一个简单的测试PHP脚本来验证您的重新划分信息:
$client = new Predis'Client([
'scheme' => 'tcp',
'host' => '<your_redis_server_name>.redis.cache.windows.net',
'port' => 6379,
]);
$client->auth(<your_reids_base64_encrypted_key_should_end_with_"=">);
$client->set('foo', 'bar');
$bar = $client->get('foo');
echo $bar;