Laravel Redis 错误

Laravel Redis Error

我最近根据 Laravel 主网站上的迁移指南将 Laravel 更新到 5.2。

但是,新的predis驱动似乎不支持我的Redis服务器;我正在使用 Ms Azure 内置的 Redis 缓存,所以我无法访问 Redis 本身的配置,它们只提供 SSl/non-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;