使用 Predis 使用 Laravel-5.4.32 配置 AWS Elasticache redis Cluster-3.2.4

Posted

技术标签:

【中文标题】使用 Predis 使用 Laravel-5.4.32 配置 AWS Elasticache redis Cluster-3.2.4【英文标题】:Configuring AWS ElasticCache redis Cluster-3.2.4 with Laravel-5.4.32 using Predis 【发布时间】:2018-01-21 20:27:04 【问题描述】:

我正在尝试在 Laravel-5.4.32 上使用 ElasticCache Redis 集群(启用集群模式而不是哨兵),但出现以下错误:

1/1) 服务器异常 已移动 13491 10.0.1.199:6379

我的 database.php 如下所示:


'redis' => [

    'client' => 'predis',
    'cluster' => true,

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

],

REDIS_HOST 值是使用 .env 文件提供的。 我的应用程序适用于单个 redis 实例。

【问题讨论】:

我已经尝试过这里提到的配置:***.com/questions/41091103/… 它对我不起作用。同样的错误。 请看这篇文章:PHP demo code using AWS ElastiCache Redis。 【参考方案1】:

以下配置对我有用:

'redis' => [
    'client' => 'predis',
    'options' => [
        'cluster' => 'redis',
    ],
    'clusters' => [
        'default' => [
            [
                'host' => env('REDIS_HOST', 'localhost'),
                'password' => env('REDIS_PASSWORD', null),
                'port' => env('REDIS_PORT', 6379),
                'database' => 0,
            ],
        ],
    ],
],

其实这点在 laravel 文档里有明确提到:https://laravel.com/docs/5.4/redis#configuration

【讨论】:

以上是关于使用 Predis 使用 Laravel-5.4.32 配置 AWS Elasticache redis Cluster-3.2.4的主要内容,如果未能解决你的问题,请参考以下文章

如何使用Predis的前缀?

Predis 分片(一致哈希)

php 操作redis predis

我在 Laravel 5.2 中收到错误“找不到类 'Predis\Client'”

Predis 给出“从服务器读取行时出错”

predis连接redis sentinel和redis cluster